当我的基于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。
答案 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