Android 网络视图 returns navigator.online 真
Android webview returns navigator.online true
在 Android Web 视图中,如果 navigator.onLine returns true 获取新数据,我每 10 秒重新检查一次,如果 false 继续使用本地数据。
但是,Android WebView 对于 navigator.onLine 始终 returns 为真。
在 Chrome 浏览器中(在 phone 上)同一网站正常工作并根据连接显示正确的状态 (true/false)。
我用 logcat 和远程 chrome 检查器调试了它。在远程 chrome 检查器中,我可以手动将连接切换为离线。除了在 java(本机应用程序)中使用网络侦听器之外,任何有相同问题或想法来解决该问题的人。
if (navigator.onLine) {
// check if new data is available
checkDataUpdate();
} else {
// OFFLINE - Mode
}
我遇到了同样的问题,在尝试了不同的方法后我发现我只有一个网络 属性 webView.setNetworkAvailable(true);
这是 navigator.onLine returns 总是正确的主要原因。只要发现你有上面的代码并注释掉它。之后,webView 将像 chrome 浏览器一样工作。
来自 android 文档:
setNetworkAvailable
已添加到 API 级别 3
void setNetworkAvailable (boolean networkUp)
通知 WebView 网络状态。这用于设置 JavaScript 属性 window.navigator.isOnline 并生成 online/offline 事件,如 HTML5
中指定
在 Android Web 视图中,如果 navigator.onLine returns true 获取新数据,我每 10 秒重新检查一次,如果 false 继续使用本地数据。
但是,Android WebView 对于 navigator.onLine 始终 returns 为真。 在 Chrome 浏览器中(在 phone 上)同一网站正常工作并根据连接显示正确的状态 (true/false)。
我用 logcat 和远程 chrome 检查器调试了它。在远程 chrome 检查器中,我可以手动将连接切换为离线。除了在 java(本机应用程序)中使用网络侦听器之外,任何有相同问题或想法来解决该问题的人。
if (navigator.onLine) {
// check if new data is available
checkDataUpdate();
} else {
// OFFLINE - Mode
}
我遇到了同样的问题,在尝试了不同的方法后我发现我只有一个网络 属性 webView.setNetworkAvailable(true);
这是 navigator.onLine returns 总是正确的主要原因。只要发现你有上面的代码并注释掉它。之后,webView 将像 chrome 浏览器一样工作。
来自 android 文档:
setNetworkAvailable
已添加到 API 级别 3
void setNetworkAvailable (boolean networkUp)
通知 WebView 网络状态。这用于设置 JavaScript 属性 window.navigator.isOnline 并生成 online/offline 事件,如 HTML5
中指定