怎么让用户自愿升级浏览器,少扛几年兼容成本

3 天前
 chenjia404

为旧内核养 polyfill 、关新语法,才是前端里最贵的长期税。用户通常不知道自己的浏览器已经过时,强跳下载页又像在赶人。

我做了个可以嵌在自己站点里的接口,不用把用户转到我这边。前端直接 fetch ,用访客 User-Agent 查这个版本还匹配多少已知 CVE ,在你自己的页面上提一句就行。

const res = await fetch("https://ismybrowsersafe.org/api/v1/lookup");
const data = await res.json();
if (data.ok && data.count > 0) {
  // 例如:当前浏览器可能仍受 128 个已公开漏洞影响,建议升级
}

跨域可用,没有 API Key 。不保存 UA ,也不会利用漏洞。空口说「请升级」没体感,对着一堆已公开漏洞,用户更愿意自己升,你后面就能少兼容一批旧内核。

文档: https://ismybrowsersafe.org/docs
检测站: https://ismybrowsersafe.org/

7219 次点击
所在节点    程序员
58 条回复
shilianmlxg
3 天前
忽悠啊,说 qq 浏览器快,网速会变快,就叫他们安装
或者 360 安全浏览器快,又安全。

其实是看哪个浏览器内核高,让他用哪个。
whitehack
3 天前
995 个.恐怖我这浏览器是不是就是炸弹

{"ok":true,"source":"header","browser":{"id":"edge","name":"Microsoft Edge","version":"150.0.0.0"},"engine":{"id":"chromium","name":"Chromium","version":"150.0.0.0"},"latest":{"version":"151.0.4129.93"},"os":"macos","architecture":"","status":"critical","riskScore":4030,"confidence":"low","estimated":true,"majorVersionsBehind":1,"count":995,"vulnerabilities":{"total":995,"critical":135,"high":329,"medium":504,"low":27},"knownExploited":0,"securityFixesSinceVersion":995,"recommendation":{"action":"update","message":"Update Microsoft Edge to the latest version. Latest stable: 151.0.4129.93.","messageKey":"recommend.update_edge"}}
linkopeneyes
3 天前
没用的手机上是完全没办法解决,比如跟着系统走的 ios,用户不准备升级你都没办法,比如 ios 某个版本之前不支持 regexp,安卓如果 h5 嵌在什么钉钉微信浙里办里更是重灾区,到现在都不支持阴影,fetch 只支持一点点,也不知道干嘛要魔改
AV1
3 天前
electron 为什么会流行,就是大家都不愿更新,那只能自己套壳了🐶。
xrds7986
3 天前
qq 瀏览器 chrome 94.0.xxxx.xx ,3275 己知漏洞。昇級了以后,廣告拦截,webrtc ,都不正常了,咋整?
goodSleep
3 天前
直接给用户发红包?
NewYear
2 天前
作为 IT 行业人员,我几个手机浏览器都是默认版本的,应用商店还不支持升级,需要各种手动操作可能还要用到电脑对接。

你真的是太看得起你的用户了

有的浏览器更是阉割功能,比如 edge/chrome 在手机版不支持安装拓展( edge 支持过一段时间,之后又阉割了)


总之理由很多,但绝对没有一个理由是为了兼容你的网站去升级,太麻烦了。
NewYear
2 天前
反正在 V2 看到很多程序员都是,自己不用旧版本,旧系统,就认为全天下都不该有人用旧系统。

例如 win7 人家用得好好的,非要逼着升 win10 那硬件不升级怎么装嘛。。过几年又要开始抛弃 win10……

还有编程语言版本也歧视,旧项目没事找事去重构一下?疯了吧。工作成本、出事故算谁的。


所以根本原因不是逼迫用户升级,而是搞好兼容配好 polyfill 之类的就行了,因为你只提出问题,不解决问题,客户不可能跟的。
Gxin
2 天前
用 wasm 造轮子
NewYear
2 天前
微软的 .Net(C#)也是你这个思路,对用户环境挑剔得很。

跨平台已经搞了 10 年了,结果还是个风味版的跨平台。

有跨平台需求的时候选型总能看到 dotnet ,结果每次都无法当选,为啥?因为运行库/编译产物在目标环境无法运行。

C#多好啊,全给这个思路给坑了,只能选其他语言,用户量怎么上得去嘛。
1258
2 天前
兼容旧浏览器,有时候就是产品存在的价值
ymy3232
2 天前
UC 浏览器 QQ 浏览器 360 浏览器 微信浏览器这些的开发者才能决定用户升不升级 你要做的是去适配这些浏览器 能主动升级的是极少数
zhengfan2016
2 天前
很简单,搞个 pdd 活动,恭喜你抽中现金红包 49.90 元,满 50 元可以提现,每抽一次随机给 0.01 到 0.02 元,三次抽奖机会,用完了提示完成任务获得更多机会,置顶任务放一个:更新 chrome 浏览器到 151.0 以上版本可以获得 3 次抽奖机会
wakarimasen
2 天前
兼容性就是咱们 Web 的一个核心竞争力和 Feature

不想兼容请左转 App Store 苹果会帮你教育用户(
kamikaze472
2 天前
@wakarimasen #54 太真实了, 我 ios15, 国外 ai 一个都用不了
Lightbright
2 天前
首先你这个检测就是有问题的,Chromium 发新版了旧版又不是不维护了
可以去这 https://chromiumdash.appspot.com/schedule 看一下,新版发布之后,旧的 LTS 版本仍然会维持相当一段时间的安全更新
0x5c0f
2 天前
学学 tx ,把浏览器直接内嵌到应用中
Kokomashiro
2 天前
推客户端呗,cef 想用哪个用哪个,想怎么兼容怎么兼容,而且不少用户的心里还是会认为客户端比网页高大上。

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

https://v2ex.ih06.com/t/1235420

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

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

© 2021 V2EX