如何从Android webview中的iframe中捕获错误

时间:2017-06-21 09:26:50

标签: android iframe error-handling android-webview

当我的基于Web的应用程序从服务器收到错误时,我使用以下代码将用户重定向到错误页面。

webview.setWebViewClient(new WebViewClient() {
    public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
        webview.loadUrl("file:///android_asset/htmls/error.html");
    }
});

但是当iframe发生错误(不在网页本身中)时,不会检测到错误。

p.s。:我使用fancybox进行某些操作,fancybox在某些情况下打开iframe。

2 个答案:

答案 0 :(得分:0)

也许在您的网页浏览中添加JavascriptInterface?

JavaScriptInterface interface = new JavaScriptInterface(this);
webview.addJavascriptInterface(JSInterface, "interface");

public class JavaScriptInterface {
    Context mContext;

    /** Instantiate the interface and set the context */
    JavaScriptInterface(Context c) {
        mContext = c;
    }
    @JavascriptInterface 
    public void doSomething()
    {
    }
}

和Javascript方面:

<script type="text/javascript">
  function execute()
  {
    JSInterface.doSomething();
  }
</script>

<input type="button" value="Click me!" onclick="execute()" />

答案 1 :(得分:0)

这是我能够在iframe加载失败时“捕获”错误的方式,它拦截了以http://https://开头的所有请求,并尝试使用{{ 1}},如果引发了一些错误,则表明请求已失败。不过尚未经过全面测试。

HttpURLConnection