java - 如何使用 Android Webview 检查链接是否离线或损坏?

标签 java android android-studio webview android-webview

我使用 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 应该加载的链接是离线还是损坏?

最佳答案

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

关于java - 如何使用 Android Webview 检查链接是否离线或损坏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33345881/

相关文章:

java - 在 Javafx Controller 中调用方法时遇到问题

java - 如何在@CsvBindByName 中获取确切名称?

android - Firefox Mobile Addon SDK 通过 Android usb 连接错误 - package.json 没有 'main' 条目

android - 无法生成 View 绑定(bind) java.lang.StackOverflowError

java - 抽象类和 Spring MVC @ModelAttribute/@RequestParam

java - 实时监控 JVM 的堆使用情况

jquery - 滚动自定义 div 在 Android 上的 jQuery Mobile 中不起作用

java - 将数组中的数据放入 Android View 中

java - 包括整个项目作为库 android studio

android - 程序类型已经存在 : android. support.v4.app.INotificationSideChannel$Stub$Proxy