你如何在手机游戏中检测3G与Wifi连接?

ang*_*ent 18 javascript safari wifi 3g ios

我特别询问移动网页上的javascript,而不是Objective-c应用程序.是否有类似Apple Reachability的javascript,所以我可以告诉Edge,3G或Wifi连接何时建立或更改?

小智 18

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

Mobile Safari确实添加了一些新的DOM添加,但不是你想要的.

没有这些选项,你不能.Internet协议的层旨在封装和隐藏底层的细节.您无法检测到Edge,3G或Wifi,因为您无法检测到电缆,DSL或更精细的光学器件.

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

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

附录

在2012 - 2013年,W3C正在充实网络信息API,旨在提供"Web应用程序访问设备底层连接信息的接口".当时,API规定浏览器的"估计"带宽可通过以下方式获得navigator.connection.bandwidth.截至2014年4月,该工作已经停止!!

更新:截至2015年10月20日,此API继续开展工作.您可以在W3C的github页面上找到网络信息API的最新编辑草稿.