【问题标题】:Is there a way to detect whether user is on wifi or cellular data with javascript?有没有办法用javascript检测用户是在wifi还是蜂窝数据上?
【发布时间】:2018-02-24 20:43:49
【问题描述】:
我希望视频仅在用户连接到 wifi 时在网站上自动播放。我知道 navigator.connection api——但它在 safari 上不可用,而且它只告诉你连接的速度而不是类型。
【问题讨论】:
标签:
javascript
connection
navigator
【解决方案1】:
截至 2020 年 12 月,Safari 尚未实施 the Network Information API,正如您所指出的,它提供了 navigator.connection NetworkInformation object。真可惜,因为其他浏览器已经提供了很多年了。
这意味着在移动 Safari(或桌面 Safari,就此而言)上没有等效的 iOS 原生可达性 API,所以你能做的最好的就是给我们一个 非常 粗略的 hack,比如:
- 查找用户的公共 IP 并尝试将其与手机提供商数据库相匹配,或者
- 进行测试下载以大致衡量连接速度。
为了完整起见,according to the MDN,截至 2020 年 12 月, 提供 navigator.connection 的浏览器是:
- 桌面:
- 铬 61+
- 边缘 79+
- Firefox,但仅如果用户启用了
dom.netinfo.enabled 首选项
- 歌剧
- 手机:
- Android WebView 50+
- Chrome Android 38+
- Firefox Android 14+(与桌面相同的警告)
- Opera Android 37+
- 三星互联网3+
(Safari 和 Internet Explorer 是唯一明显缺少支持的主要浏览器。)