如何检查webview是否无法加载页面(android)?

HAx*_*xor 28 android

我的应用程序中有一个webview,但有时由于连接,webview无法加载,我得到默认的网页不可用页面.如果webview无法加载,我想显示alertdialog.无论如何我可以检查(可能在shouldOverridePageLoad函数中)webview加载成功吗?再次感谢

Dam*_*aca 60

在Web视图上使用WebClient,如下所示:

webView.setWebViewClient(new WebViewClient(){

@Override public void onReceivedError(WebView view, WebResourceRequest request,
      WebResourceError error) {
    super.onReceivedError(view, request, error);
    // Do something
  }
});
Run Code Online (Sandbox Code Playgroud)

  • 你应该看一下这个答案:http://stackoverflow.com/a/33419123/149008,因为在API23中不推荐使用onReceivedError (3认同)
  • 这不是正确的答案,因为onRecievedError也可能在此页面一部分的图像上发生。意思是,它将调用此方法,并且您将指示失败,尽管只能加载其中一个资源。 (2认同)

Kla*_*aus 18

扩展Damien的使用答案WebViewClient,有四个听众可以WebViewClient检查加载网页的成功与否.

webView.setWebViewClient(new WebViewClient() {
    @Override
    public void onPageFinished(WebView view, String url) {
    }

    @Override
    public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {
    }

    @Override
    public void onReceivedHttpError(
            WebView view, WebResourceRequest request, WebResourceResponse errorResponse) {
    }

    @Override
    public void onReceivedSslError(WebView view, SslErrorHandler handler,
                                   SslError error) {
    }
});
Run Code Online (Sandbox Code Playgroud)

还有:

@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
   }
});
Run Code Online (Sandbox Code Playgroud)

不赞成使用上面代码中提到的重载.