Android WebView未显示服务工作者保存的外线页面



我有一个带有服务工作者的网页,在离线模式下,移动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

中的Internet连接
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资产文件夹中

最新更新