我目前正在使用Ionic Native "Network"开发Ionic 3应用程序,并且它与相关的Cordova插件相关联,可以检测设备是否连接到WiFi网络。但是,我们连接的无线网络是专有设备上的访问点,因此该设备没有互联网连接。
当我连接到该仅限本地的WiFi网络时,经常在Android上(请参阅下面的注释),当我从type
中检查cordova-plugin-network-information
属性时,我会回到4g
而不是wifi
..
注意:在Android上,如果当前的WiFi网络没有互联网,则我的设备会同时保持其蜂窝数据连接处于活动状态。我不确定iOS如何处理此问题,但我怀疑这可能是一个类似的故事。
这时,如果我禁用设备的蜂窝数据连接,则插件将报告连接类型为wifi
。同样,再次启用我的数据连接会将其更改回4g
。我只能假定这是因为它可以将“当前网络”标识为可以访问互联网的任何人。
有没有人知道一种检测我是否在WiFi网络上的方法,而无论Internet连接到哪条路由。?
作为一种解决方法,我正在考虑实现Ionic Native "Network Interface"插件,并对其getWiFiIPAddress
方法进行调用:我的逻辑是 if 然后我得到了响应我在WiFi网络上(无论“ Network”插件的type
值如何),但是如果出现错误,则不是。不过,这感觉有些古怪,所以我真的希望有更好的方法来解决这个问题……