我试图在我的网络 View 上显示一个警告框而不是“网页不可用”错误页面,但即使在按照文档添加 onReceivedError() 方法后也无法工作,如果我遗漏了什么,请建议我,这是我的代码...
public class CloudPageHolder extends Activity {
WebView mWebView;
ProgressDialog _dialog ;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mWebView = (WebView) findViewById(R.id.webview);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.getSettings().setDomStorageEnabled(true);
mWebView.loadUrl("file:///android_asset/www/MyPage.html");
mWebView.getSettings().setJavaScriptCanOpenWindowsAutomatically(false);
mWebView.getSettings().setPluginsEnabled(false);
mWebView.getSettings().setSupportMultipleWindows(false);
mWebView.getSettings().setSavePassword(false);
mWebView.getSettings().getAllowFileAccess();
mWebView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
mWebView.getSettings().setUseWideViewPort(true);
mWebView.getSettings().setLoadWithOverviewMode(true);
mWebView.setWebViewClient(new WebViewClient() {
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
new AlertDialog.Builder(CloudPageHolder.this)
.setMessage("Something went wrong!")
.setPositiveButton(android.R.string.ok,
new AlertDialog.OnClickListener()
{
public void onClick(DialogInterface dialog, int which)
{
dialog.dismiss();
}
})
.setCancelable(false)
.create()
.show();
}
});
mWebView.setWebChromeClient(new WebChromeClient() {
@Override
public boolean onJsAlert(WebView view, String url, final String message, final android.webkit.JsResult result)
{
new AlertDialog.Builder(CloudPageHolder.this)
.setMessage(message)
.setPositiveButton(android.R.string.ok,
new AlertDialog.OnClickListener()
{
public void onClick(DialogInterface dialog, int which)
{
result.confirm();
}
})
.setCancelable(false)
.create()
.show();
return true;
}
});
}
提前致谢...
最佳答案
我不确定您的错误是什么,但 onReceivedError 的文档有些误导。
此时,您无法使用此方法拦截 HTTP 错误响应。
检查 these posts 。
我正在使用 this other post 中描述的方法开发类似的解决方法。
将尽快更新详细信息。
祝你好运!
关于Android webview onReceivedError() 不工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13120887/