V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Get Google Chrome
Vimium · 在 Chrome 里使用 vim 快捷键
Archeb
V2EX  ›  Chrome

Chrome 将淘汰 UA,怎么办?

  •  
  •   Archeb · 2020-01-16 19:55:04 +08:00 via iPhone · 9080 次点击
    这是一个创建于 1775 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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 友有什么更好的方案么?

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

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

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

    https://modernizr.com/
    id7368
        15
    id7368  
       2020-01-17 00:00:54 +08:00 via iPhone
    这有点操蛋了
    efsg
        16
    efsg  
       2020-01-17 00:24:17 +08:00 via Android
    别黑过头了,这回终于干了件事
    yyfearth
        17
    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
        18
    yyfearth  
       2020-01-17 03:55:37 +08:00
    @Livid modernizr 我记得也是会用 UA 的 所以 body 上面可以有 ie webkit 这种的 class
    但是大部分 feature detection 是直接用 js 或者 css 做到的
    iamwho
        19
    iamwho  
       2020-01-17 05:21:38 +08:00
    因为这是国内互联网企业的一个笑话,网页本应适配各分辨率。
    ladypxy
        20
    ladypxy  
       2020-01-17 05:37:11 +08:00 via iPhone
    我个人觉得,google 这个决定的起因是 edge 现在直接使用 chrome 的 ua,导致不好下手使绊子。于是我干脆取消,看你怎么伪装
    iamwho
        21
    iamwho  
       2020-01-17 06:00:07 +08:00
    @ladypxy #20
    脑子呢?
    ladypxy
        22
    ladypxy  
       2020-01-17 07:55:33 +08:00 via iPhone
    @iamwho 你除了人身攻击,脑子在哪里?
    kx5d62Jn1J9MjoXP
        23
    kx5d62Jn1J9MjoXP  
       2020-01-17 08:08:06 +08:00 via Android
    20 楼 太有说相声的天赋了😂
    Love4Taylor
        24
    Love4Taylor  
       2020-01-17 08:14:13 +08:00
    @ladypxy 那这就是被迫害妄想症了。
    falcon05
        25
    falcon05  
       2020-01-17 08:18:52 +08:00 via iPhone
    @ladypxy 您想多了
    murmur
        26
    murmur  
       2020-01-17 08:32:01 +08:00
    有 ua 的是 chrome,没 ua 的就是 safari,反正 edge 也是 chrome
    murmur
        27
    murmur  
       2020-01-17 08:32:11 +08:00
    说反了
    passerbytiny
        28
    passerbytiny  
       2020-01-17 08:46:50 +08:00
    那么,如果我就是像让人知道我用得就是 win10 不是 win7 呢,我连个开启 UA 的开关都没有。Chrome 最大的问题不是它要干什么,而是它不让用户干什么。

    Firefox 保平安。
    iamwho
        29
    iamwho  
       2020-01-17 10:14:40 +08:00   ❤️ 1
    @ladypxy #22

    Apple (Safari), Microsoft (Edge), and Mozilla (Firefox) have also expressed support for Google's proposal to freeze and phase out the user-agent string, but have not announced detailed plans at the time of writing.

    没脑子就多用眼睛。
    Torpedo
        30
    Torpedo  
       2020-01-17 10:26:15 +08:00   ❤️ 1
    ua 可不止判断是不是移动端还是 pc。说布局的,移动端和 pc 本就是两套代码。win 和 ios 都想搞一套 ui 多端,不都失败了。
    手机端本身很多浏览器也能改 ua。
    而且 ua 还能判断兼容性。这些浏览器,一堆各自平台的 bug,不根据 ua 做特殊处理吗?
    你装个 app,即使你不开权限,它也能获取你系统各种版本信息
    wxt2005
        31
    wxt2005  
       2020-01-17 10:37:01 +08:00   ❤️ 1
    蓝点网:“按谷歌说明该公司的最终目的是阻止所有网站或服务识别用户使用的操作系统、浏览器版本、具体的设备型号等。最终结果是谷歌浏览器只会给网站发送用户代理字符串片段,此片段不能用于识别是电脑还是手机以及其版本等。”

    ZDNet: "Websites will be able to tell that a user is running Chrome, and if they're on a desktop or mobile device, but that's about it."

    hmm?
    wxt2005
        32
    wxt2005  
       2020-01-17 10:45:21 +08:00
    顺便各位可以去看看[User-Agent Client Hints]( https://wicg.github.io/ua-client-hints/),并不是说现在的 UA 废弃了之后就没办法知道用户的平台信息了,只是你需要显式地去请求(当然我猜,根据用户的隐私设置,浏览器也可以选择不返回给你)。
    rogwan
        33
    rogwan  
       2020-01-17 10:52:08 +08:00 via iPhone
    要是 Safari 也没有 UA 更麻烦,很多只有 Safari 支持的特性,就没法判断了
    libook
        34
    libook  
       2020-01-17 11:01:26 +08:00
    个人一直都觉得 UA 不可靠,支持使用可靠、安全的方式来检测兼容性,不过浏览器厂商有点不尊重开发者。
    ladypxy
        35
    ladypxy  
       2020-01-17 11:39:39 +08:00
    @iamwho 你依然没有展现出你的脑子在哪里,复制粘贴就是脑子? google 任何动作都是有利益的。Google is killing UA as a scapegoat to promote an actual tracking technology built right into their browser, which will target the user locally and tell the whole world about the user's interests.
    a719114136
        36
    a719114136  
       2020-01-17 11:52:41 +08:00 via Android
    弃前端,保平安
    hoyixi
        37
    hoyixi  
       2020-01-17 12:21:05 +08:00
    挺好的,啥时候连操作系统之类也去掉更好。就说网站吧,你展示内容就行了,有交互,JS 不就行了,何必要知道我用啥浏览器。
    Archeb
        38
    Archeb  
    OP
       2020-01-17 12:25:39 +08:00
    @yyfearth 只是 UI 元素的话靠 media query 我觉得足够了,但是我帖子中讲到的那个场景要判断的就是“是手机还是电脑”,而不是判断应该用手机版还是电脑版。
    iamwho
        39
    iamwho  
       2020-01-17 13:31:38 +08:00
    @ladypxy #35

    笑话,随机 UA 影响 Tracking 了吗,反驳的只是你在#20 说的屁话而已。
    ladypxy
        40
    ladypxy  
       2020-01-17 13:58:42 +08:00 via iPhone
    @iamwho 1,看不懂英文最好闭嘴。google 并不随机 UA,而是用 The long-term plan is to unify all Chrome UA strings into generic values that don't reveal too much information about a user.

    2,google 在 youtube 上就是使用 UA 进行识别,监测到 edge 会恶意加载降低性能的代码。你连这个都不知道又发表什么意见么?

    没脑子的人就是没脑子,只会乱喷。
    wangxiaoaer
        41
    wangxiaoaer  
       2020-01-17 14:02:40 +08:00
    @ladypxy #20 这个逻辑有问题吧。

    Google 如果只能依靠 UA 识别自家浏览器,那么他把 UA 取消又有什么意义?

    Google 如果可以依靠 UA 之外的手段识别,那么他把 UA 取消又有什么意义?
    iamwho
        42
    iamwho  
       2020-01-17 14:28:26 +08:00
    @ladypxy #40
    看不懂中文就别回了把,
    我说 UA 不影响 Google 或者其它企业 Tracking 用户,你在这扯什么?
    youtube 在 edge 的性能问题和 UA 更没有关系,而是因为旧版 edge 不支持 shadow DOM。
    ClarkAbe
        43
    ClarkAbe  
       2020-01-17 14:47:13 +08:00 via Android
    使用 UA 可以用来统计用户流量啊......为营销分析提供数据...又不是仅仅用来兼容你的设备....
    learningman
        44
    learningman  
       2020-01-17 19:17:56 +08:00
    @ClarkAbe 这个是企业的用途,和用户没啥关系。。。
    charlie21
        45
    charlie21  
       2020-02-10 01:25:37 +08:00 via iPhone
    无障碍网页设计 WCAG
    https://www.cnblogs.com/joannaq/p/4082547.html
    考虑到残障人士友好的网页设计 UA 是很重要的信息
    Dogod37
        46
    Dogod37  
       2021-09-09 22:00:19 +08:00
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1757 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 16:43 · PVG 00:43 · LAX 08:43 · JFK 11:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.