【问题标题】:How to check if Link is offline or broken with Android Webview?如何使用 Android Webview 检查链接是否脱机或损坏?
【发布时间】:2016-01-25 13:26:41
【问题描述】:

我使用 Android Webview 来加载这样的 URL:

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 应该加载的链接是否离线或损坏?

【问题讨论】:

  • 能发个例子吗?
  • 我的ans更新了,检查一次。

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


【解决方案1】:

是的,您可以在 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());
  }
});

【讨论】:

  • @confile 让我知道我的答案中的任何疑问。
  • 如果是 404 之类的,我如何检查状态码?
  • @confile 使用 onReciceive() 2nd Argument errorCode,
  • 您能否将此添加到您的答案中。
  • @confile 更新了我的回答。检查它是否已解决,然后标记它已解决。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-03-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-26
  • 2018-06-07
  • 2012-04-13
相关资源
最近更新 更多