有没有办法用javascript检测用户是否使用wifi或蜂窝数据?

spo*_*bob 6 javascript connection navigator

我希望仅当用户连接到 wifi 时视频才能在网站上自动播放。我知道 navigator.connection api - 但它在 safari 上不可用,而且它只告诉你连接的速度而不是类型。

s3c*_*ur3 4

截至 2020 年 12 月,Safari 尚未采取任何行动来实现网络信息 API,正如您所指出的,该 API 提供了navigator.connection NetworkInformation对象。这很遗憾,因为其他浏览器已经提供这个功能很多年了。

这意味着移动 Safari(或桌面 Safari)上没有与 iOS 原生 Reachability API 相当的东西,因此您能做的最好的事情就是使用非常粗略的 hack,例如:

  • 查找用户的公共 IP 并尝试将其与手机提供商的数据库进行匹配,或者
  • 进行测试下载以粗略测量连接速度。

为了完整起见,根据 MDN 的说法,截至 2020 年 12 月提供的浏览器有:navigator.connection

  • 桌面:
    • 铬 61+
    • 边缘 79+
    • Firefox,但前提是用户启用了该dom.netinfo.enabled首选项
    • 歌剧
  • 移动的:
    • Android WebView 50+
    • Chrome 安卓 38+
    • Firefox Android 14+(与桌面版相同的警告)
    • 歌剧安卓 37+
    • 三星互联网 3+

(Safari 和 Internet Explorer 是唯一明显缺少支持的主要浏览器。)