Chrome 将淘汰 UA,怎么办?

2020-01-16 19:55:04 +08:00
 Archeb

https://www.landiannews.com/archives/69081.html

https://www.zdnet.com/article/google-to-phase-out-user-agent-strings-in-chrome/

Mozilla 关于如何识别设备类型的方案中,并不推荐使用 UA,而是建议去测试希望使用的功能是否可用,否则使用备选方案。

搜了下 stackoverflow 上关于不用 ua 的方案,基本上无非就是检测窗口大小,个人认为这样更蠢…

而且假设有这么一个场景:当你要判断跳转电脑支付网关还是拉起手机支付宝的时候,怎么办?先测试拉起看看是否保持焦点?

各位 V 友有什么更好的方案么?

9074 次点击
所在节点    Chrome
46 条回复
bakabie
2020-01-16 19:55:49 +08:00
立刻使用 Edge (逃
ljpCN
2020-01-16 19:58:23 +08:00
浏览器可以像小程序一样提供一个 caniuse 的接口[doge]
antileech
2020-01-16 20:07:30 +08:00
专治百度手机版强行 app 跳转
huluhulu
2020-01-16 20:45:49 +08:00
屠龙者成为了恶龙…
loading
2020-01-16 21:09:26 +08:00
作为用户:说实话,浏览器不应该告诉服务器我用的究竟是什么操作系统还有浏览器版本,这个其实是隐私。

开发者: wtf!
HeiXiaoBai
2020-01-16 21:12:00 +08:00
使用一个不发送 UA 的浏览器,差不多意味着世界上一大堆靠 UA 自适配的网站失效了吧
imn1
2020-01-16 21:16:22 +08:00
同意#5
例如支付方式,应该用户选择,而不是主动拉起

但是我觉得,这个主张会被口水淹没,大多数人宁愿要方便、自动,而不是选择权,反正大部分人从小到大都习惯了“不知道候选项是什么就选择了”
anguiao
2020-01-16 21:17:18 +08:00
现在一堆网站根据 UA 来判定移动端,然后强行让你下载 app。
wangkun025
2020-01-16 21:18:31 +08:00
👏呗,还能怎么办
walpurgis
2020-01-16 21:24:44 +08:00
检测窗口大小本质也算功能检测一种,没啥问题吧
ClericPy
2020-01-16 21:27:30 +08:00
第一反应想起那些:
使用 App 阅读全文的场景...
hubqin
2020-01-16 21:29:41 +08:00
开发者应该反过来让用户自行选择当前的浏览设备是在手机端还是 PC 端。
billlee
2020-01-16 22:41:17 +08:00
把电脑支付网关的网址和 app 注册的 pattern 设置成一样就好了,就像 google 的那些 app 一样
Livid
2020-01-16 22:42:51 +08:00
可以去看看这个项目的源代码:

https://modernizr.com/
id7368
2020-01-17 00:00:54 +08:00
这有点操蛋了
efsg
2020-01-17 00:24:17 +08:00
别黑过头了,这回终于干了件事
yyfearth
2020-01-17 03:53:58 +08:00
@Archeb 对于自适应 web 本来就应该通过网页窗口的大小来觉得这么排版啊 一般就用 @media screen
对于手机或者平板要对触摸优化的话 要看是否支持触摸 css 可以用 @media pointer 之类的判断 而不仅仅看屏幕大小
对于 Chrome 等新浏览器 大部分需要通过 UA 判断的 基本上对于通过 css 或者 js 的 API 来判断 比较有名就是 Livid 提到的 modernizr
通过 UA 判断功能本来就不准 如果仅仅用来判断是否是移动端 Chrome 并没有禁止服务器读取 UA
而前端仍然可以读 UA 只是有 warning 罢了 不读用我上面说的方法前端也可以工作

@antileech @anguiao 其实并没办法彻底解决这个问题 因为根据 Chrome 的文章
UA 还是可以区分桌面和移动端 这个主要应该是考虑到服务器端可能会根据 UA 做不同的跳转
但是桌面端之间没办法区分系统和版本 移动端也一样
yyfearth
2020-01-17 03:55:37 +08:00
@Livid modernizr 我记得也是会用 UA 的 所以 body 上面可以有 ie webkit 这种的 class
但是大部分 feature detection 是直接用 js 或者 css 做到的
iamwho
2020-01-17 05:21:38 +08:00
因为这是国内互联网企业的一个笑话,网页本应适配各分辨率。
ladypxy
2020-01-17 05:37:11 +08:00
我个人觉得,google 这个决定的起因是 edge 现在直接使用 chrome 的 ua,导致不好下手使绊子。于是我干脆取消,看你怎么伪装

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/638535

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX