在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
}
答案 0 :(得分:0)
我遇到了同样的问题,在尝试了不同的方法后,我发现自己拥有一个网络媒体资源webView.setNetworkAvailable(true);
这是navigator.onLine始终返回true的主要原因。只要找到上面的代码并将其注释掉即可。之后,webView将像chrome浏览器一样工作。
来自android文档:
setNetworkAvailable
已添加到API级别3
void setNetworkAvailable (boolean networkUp)
通知WebView网络状态。这用于设置JavaScript属性window.navigator.isOnline并生成HTML5
中指定的在线/离线事件。