如何添加自定义“网页不可用”

时间:2015-03-21 17:18:06

标签: android webview

我开发了一个webview android应用程序,当用户没有连接到网络时,应用程序显示此页面"网页不可用" 我需要添加自定义页面(自定义错误图像。

请帮帮我!

1 个答案:

答案 0 :(得分:1)

实现这一点非常简单:

public class MainActivity extends ActionBarActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        WebView webView = (WebView) findViewById(R.id.webView);
        webView.setWebViewClient(new CustomWebViewClient());
        webView.loadUrl("http://google.scom"); 
        // Inserted an error in the URL to load to test the onErrorReceived.
        // You could also just remove the internet connection or remove the internet permission.
    }

    class CustomWebViewClient extends WebViewClient {
        @Override
        public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
            super.onReceivedError(view, errorCode, description, failingUrl);
            view.loadData("<html>OMG! SOMETHING WENT WRONG!</html>", "", "");
        }
    }
}

您的想法是提供WebViewClient自定义的定制。在此类(CustomWebViewClient)中,您将覆盖onReceivedError方法,只要在WebView中加载网址失败,就会调用此方法。我根本没有查看errorCode,但您可以区分不同的错误。

然后,当加载失败时,您只需将静态HTML页面加载到Webview中。我不建议从互联网上加载另一个URL,因为这可能会以无限循环结束,因为这种方法会被反复调用,而互联网连接是不可用的。