Home » Android » How to check if webview failed to load page (android)?

How to check if webview failed to load page (android)?

Posted by: admin April 23, 2020 Leave a comment

Questions:

I have a webview in my app, however sometimes due to connectivity the webview fails to load and I get the default webpage unavailable page. I want to show an alertdialog if the webview failed to load. Is there anyway I can check (maybe in the shouldOverridePageLoad function) that a webview loaded successfully? Thanks again

How to&Answers:

Use a WebClient on your web view as follow :

webView.setWebViewClient(new WebViewClient(){

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

Answer:

Extending on Damien’s answer on using WebViewClient, there are four listeners available on WebViewClient to check for the success and failure of loading web pages.

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) {
    }
});

There is also:

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

which is deprecated in favor of its overload mentioned in the above code.