防止android webview显示错误页面

防止android webview显示错误页面,android,webview,android-webview,Android,Webview,Android Webview,如果收到错误,我想从asset显示本地HTML。但是,即使我重写了onReceivedError方法,在显示来自资产的页面之前,也会有一个错误页面闪烁一秒钟。这个问题有没有解决办法 这是我的密码: @Override public void onReceivedError (WebView view, int errorCode, String description, String failingUrl) { Log.i("onReceivedError

如果收到错误,我想从asset显示本地HTML。但是,即使我重写了onReceivedError方法,在显示来自资产的页面之前,也会有一个错误页面闪烁一秒钟。这个问题有没有解决办法

这是我的密码:

    @Override
    public void onReceivedError (WebView view, int errorCode, String description, String failingUrl)
    {
        Log.i("onReceivedError", "onReceivedError: " + failingUrl + " errorCode: " + errorCode);
        super.onReceivedError(view, errorCode, description, failingUrl);
        view.stopLoading();
        loadFromAsset(view, failingUrl);
    }

我可以通过检查onPageStarted事件中是否有internet连接来绕过这个问题,因为目前为止,它似乎可以在我们测试的所有设备上工作。我正在使用自定义html错误页面

 mWebView.setWebViewClient(new WebViewClient() {

        @Override
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
            if(!NetworkConnection.isNetworkAvailable(getActivity()) && !url.equals("file:///android_asset/error_page.html")){
                view.loadUrl("file:///android_asset/error_page.html");
            }
            super.onPageStarted(view, url, favicon);
        }

        public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
            mWebView.loadUrl("file:///android_asset/error_page.html");
            super.onReceivedError(view,errorCode,description,failingUrl);
        }

    });

你想犯什么错误
onReceivedError
处理HTTP响应状态代码。从文档:
向主机应用程序报告错误。。。基本用法:…不启用JavaScript,网页错误被忽略
我是指默认的Android“未找到页面”错误。您知道-如果没有Internet连接,我希望显示来自资产的页面,而不是错误页面。这里有一些信息:Quote:
错误不是HTTP错误,而是不可恢复的资源错误(找不到文件、没有网络连接、找不到主资源的服务器等).
您可以改为使用
HttpClient
并处理
HttpResponse.getStatusLine.getStatusCode