【问题标题】:WebView onPageFinished is being called when Page Not Available error. ¿Solution?当页面不可用错误时,正在调用 WebView onPageFinished。解决方案?
【发布时间】:2014-05-21 10:09:47
【问题描述】:

我有一个 webview,在调用 onReceivedError() 时必须生成一个 LOG。但问题是,当我的 wifi 连接非常糟糕(几乎 100% 丢失)并且 webview 显示 Page Not Available html 错误时,正在调用方法 onPageFinished 而不会调用 onReceivedError

如何解决?我希望当页面不可用时调用 onReceivedError 方法!

    webView.setWebViewClient(new WebViewClient() {   

    @Override
    public void onPageFinished(WebView view, String url) {
     super.onPageFinished(view, url);
     Log.d("WEBVIEw","ON PAGE FINISHED");
    }    

    @Override
    public void onReceivedError(WebView view, int errorCode,
      String description, String failingUrl) {
      Log.d("WEBVIEw","ON PAGE error");
    }

   });

【问题讨论】:

  • 似乎是 WebView 中的一个错误。你运行的是什么安卓版本?
  • +1,我面临同样的问题。 @NullPointerException,您是否向 google 报告了问题并且您知道解决方案吗?

标签: android webview android-webview


【解决方案1】:

onPageFinished 将始终被触发,即使出现错误。有一个名为 onPageSucceeded 的方法会很棒 - 但创建起来相当容易。

在页面顶部创建属性private boolean webviewSuccess = true;

@Override
public void onPageFinished(WebView view, String url) {
 super.onPageFinished(view, url);
 Log.d("WEBVIEW","ON PAGE FINISHED");
 if(webviewSuccess) {
    Log.d("WEBVIEW","ON PAGE SUCCEEDED");
 }
}    

@Override
public void onReceivedError(WebView view, int errorCode,
  String description, String failingUrl) {
  webviewSuccess = false;
  Log.d("WEBVIEW","ON PAGE error");
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多