36

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

4

2 回答 2

71

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

webView.setWebViewClient(new WebViewClient(){

@Override public void onReceivedError(WebView view, WebResourceRequest request,
      WebResourceError error) {
    super.onReceivedError(view, request, error);
    // Do something
  }
});
于 2012-10-22T17:29:41.587 回答
20

扩展 Damien 对 using 的回答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) {
    }
});

还有:

@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
   }
});

不推荐使用上面代码中提到的重载。

于 2016-05-29T07:13:33.543 回答