如何在 Mobile Safari 中检测 3G 与 Wifi 连接?

2024-03-10

我特别询问的是移动网页上的 javascript,而不是 Objective-C 应用程序。是否有像 Apple Reachability for javascript 这样的东西,以便我可以知道 Edge、3G 或 Wifi 连接何时建立或更改?


除非浏览器开始通过 DOM 泄露这些信息,但目前他们还没有这样做。有一个navigatorjavascript 对象包含很多东西,但不是你要找的东西。我最近还在新闻中读到,一些移动运营商正在向其手机上发出的 HTTP 请求添加 cookie。他们被发现将客户 ID 添加到 cookie(巨大的安全漏洞!!)。

Mobile Safari 确实添加了一些新功能DOM 添加 http://developer.apple.com/library/safari/#documentation/AppleApplications/Reference/SafariJSRef/_index.html#//apple_ref/doc/uid/TP40001482但不是你所要求的。

缺少这些选项,您就不能。互联网协议层旨在封装和隐藏底层的细节。您无法检测 Edge、3G 或 Wifi,就像无法检测电缆、DSL 或更精细的光学器件一样。

最后,即使你可以获取此信息,除非您有以下详细信息,否则它对您没有任何好处每个节点在你的 TCP 连接中。例如,我可以进行以下设置:


iPad  ---WiFi---->  iPhone's Hotspot  ---3G--->  Carrier ---unknown--->>>  

Addendum

2012-2013 年,W3C http://w3c.org正在充实网络信息API http://www.w3.org/TR/netinfo-api/其目的是提供“Web应用程序访问设备底层连接信息的接口”. 当时 http://www.w3.org/TR/2012/WD-netinfo-api-20121129/#attributes-1,API 规定浏览器的“估计”带宽可以通过navigator.connection.bandwidth. 截至 2014 年 4 月,该工作已停止!

更新1:截至 2015 年 10 月 20 日,该 API 的工作仍在继续。你可以找到最新的网络信息 API 的编辑草稿 https://w3c.github.io/netinfo/在 W3C 的 github 页面上。

更新2:2020年6月,出于隐私考虑,苹果拒绝在 Safari 中实现网络信息 API https://www.zdnet.com/article/apple-declined-to-implement-16-web-apis-in-safari-due-to-privacy-concerns/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Mobile Safari 中检测 3G 与 Wifi 连接? 的相关文章