我有一个带有服务工作者的网页,在离线模式下,移动chrome仍然可以显示我的offline.html。
现在,我有一个带有WebView的Android应用程序可以显示该页面,但是当没有Internet时,有一个Android错误页面说"Webpage not available
The webpage at xxxxxx could not be loaded because: net:ERR_FAILED"
我该如何解决?我可以防止在Andoird应用中检查Internet连接吗?非常感谢!
您需要覆盖自己的WebViewClient
并检查shouldOverrideUrlLoading
public boolean checkInternetConnection(Context context) {
ConnectivityManager con_manager = (ConnectivityManager)
context.getSystemService(Context.CONNECTIVITY_SERVICE);
return (con_manager.getActiveNetworkInfo() != null
&& con_manager.getActiveNetworkInfo().isAvailable()
&& con_manager.getActiveNetworkInfo().isConnected());
}
class CustomWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (!checkInternetConnection(this)) {
view.loadUrl("file:///android_asset/filename.html");
} else {
view.loadUrl(url);
}
return true;
}
}
和当然,将您的自定义WebViewClient
设置为WebView
webview.setWebViewClient(new CustomWebViewClient())
另外,将filename.html
放入您的Android Project资产文件夹中