Android WebView不显示服务工作者保存的脱机页面

时间:2019-03-12 04:07:41

标签: android webview android-webview service-worker offline

我有一个与服务人员合作的网页,该网页在离线模式下,移动Chrome仍然可以显示我的offline.html。

现在我有一个带有网络视图的Android应用程序来显示该页面,但是当没有互联网时,会有一个Android错误页面显示"Webpage not available The webpage at xxxxxx could not be loaded because: net:ERR_FAILED"

我该如何解决?我可以防止在Andoird APP中检查互联网连接吗?非常感谢你!

1 个答案:

答案 0 :(得分:1)

您需要覆盖自己的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项目资产文件夹