如何拦截webview中的“找不到页面”错误?

时间:2011-02-16 19:23:17

标签: android webview

我正在编写一个包含WebView的应用程序。我想提供一些功能,以便在我试图在我的应用程序中显示的内容离线或其他原因无法访问的情况下,对“找不到页面”消息进行反复识别。 我尝试使用onReceivedError()但无济于事。除非我的语法错误,但如果是这样我没有看到错误。有人可以帮忙吗?

代码:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    mWebView = (WebView) findViewById(R.id.webview);
    mWebView.getSettings().setJavaScriptEnabled(true);
    mWebView.loadUrl("http://www.somesite.net");

    mWebView.setWebViewClient(new HelloWebViewClient()); 

    mWebView.setWebViewClient(new WebViewClient() {
    @Override
    public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
        Log.i("WEB_VIEW_TEST", "error code:" + errorCode);
        super.onReceivedError(view, errorCode, description, failingUrl);
        //TO DO - do something else in here if the site is down
        }
      });


}
private class HelloWebViewClient extends WebViewClient {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        view.loadUrl(url);
        return true;

    }
}

2 个答案:

答案 0 :(得分:1)

应在加载网址之前设置WebViewClient。

答案 1 :(得分:0)

刚刚遇到这个。 onReceivedError()工作正常。发生错误时,您将收到-2。