Android Webview返回navigator.online true

时间:2019-02-10 17:01:45

标签: android webview chromium

在Android Webview中,如果navigator.onLine返回true以获取新数据,或者如果返回false以继续使用本地数据,则每10秒重新检查一次。

但是,Android WebView始终为navigator.onLine返回true。 在Chrome浏览器(在手机上)中,同一网站可以正常工作,并根据连接情况显示正确的状态(对/错)。

我用logcat和远程chrome检查器调试了它。在远程chrome检查器中,我可以手动将连接离线切换。除了在Java(本机应用程序)中使用网络侦听器之外,任何有相同问题或想法的人都可以解决。

if (navigator.onLine) {
    // check if new data is available
    checkDataUpdate();
  } else {
    // OFFLINE - Mode
}

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,在尝试了不同的方法后,我发现自己拥有一个网络媒体资源webView.setNetworkAvailable(true);

这是navigator.onLine始终返回true的主要原因。只要找到上面的代码并将其注释掉即可。之后,webView将像chrome浏览器一样工作。

来自android文档:

setNetworkAvailable

已添加到API级别3

void setNetworkAvailable (boolean networkUp)

通知WebView网络状态。这用于设置JavaScript属性window.navigator.isOnline并生成HTML5

中指定的在线/离线事件。