我试图在我的网络 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/

10-12 03:55