如何使用Android Webview检查链接是否脱机或损坏?

时间:2015-10-26 12:32:52

标签: java android android-studio webview android-webview

我使用Android Webview加载这样的网址:

mWebView = (WebView)v.findViewById(R.id.webView);
mWebView.getSettings().setLoadWithOverviewMode(true);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.getSettings().setUseWideViewPort(true);
mWebView.getSettings().setBuiltInZoomControls(true);
mWebView.getSettings().setDomStorageEnabled(true);

mWebView.loadUrl("someUrl");

如何检测webView应加载的链接是离线还是已损坏?

1 个答案:

答案 0 :(得分:2)

是的,您可以使用WebViewClient类中的onRecicedError()检测WebView中的断开链接。

您必须为WebViewClient创建一个对象并实现onRecicedError()方法并使用WebView中的setWebViewClient()方法设置WebViewClient对象

<强>例如

webView.setWebViewClient(new WebViewClient() {
  @SuppressWarnings("deprecation")
  @Override
  public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
      if(errorCode == 404){
             Log.d("Webview", "Invalid URL: "+url);
      }
      else if(errorCode == 500){
           Log.d("Webview", "Internal Server error: "+url);
      }
  }

  @TargetApi(android.os.Build.VERSION_CODES.M)
  @Override
  public void onReceivedError(WebView view, WebResourceRequest req, WebResourceError rerr) {
    // Redirect to deprecated method, so you can use it in all SDK versions
    onReceivedError(view, rerr.getErrorCode(), rerr.getDescription().toString(), req.getUrl().toString());
  }
});