0

在我的 ContentView 中,我有一些离线内容和一个 WebView。当设备在线时,WebView 显示来自网络的内容。但是当设备离线时,会显示白页。我怎样才能摆脱这个空白页?我不想在离线模式下显示任何 WebView 内容。

我的代码是:

        ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    android.net.NetworkInfo wifi = cm
            .getNetworkInfo(ConnectivityManager.TYPE_WIFI);
    android.net.NetworkInfo datac = cm
            .getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
    if ((wifi != null & datac != null)
            && (wifi.isConnected() | datac.isConnected())) {
    android.webkit.WebView wv = 
    (android.webkit.WebView)this.findViewById(R.id.myWebView);
    wv.clearCache(true);
    wv.loadUrl("MyURL");
    wv.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
    wv.getSettings().setJavaScriptEnabled(true);
    }
4

1 回答 1

0

好吧,如果我理解正确,您希望它显示一些错误而不是空白页。然后你可以使用下面的代码:

mainWebView.setWebViewClient(new WebViewClient() {
        public void onReceivedError(WebView view, int errorCode,
                String description, String failingUrl) {
            String summary = "<html><h1>Could not connect to the server</h1><h2>May be you are not connected to Internet or</h2><h3>our server is down.</h3><body>Please exit the program and try again later.</body></html>";
            mainWebView.loadData(summary, "text/html", null);               

        }
    });

或者,如果您想在设备离线而不是显示空白页面时返回相同的活动,则只需使用以下代码:

                    mainWebView.onResume();
                    finish();

我有同样的问题。所以我显示了错误而不是空白页。之后我决定回到我开始网络的活动。所以我用了finish(); . 这有助于完成错误并返回。

我使用的源代码是。

mainWebView.setWebViewClient(new WebViewClient() {
            public void onReceivedError(WebView view, int errorCode,
                    String description, String failingUrl) {
                String summary = "<html><h1>Could not connect to the server</h1><h2>May be you are not connected to Internet or</h2><h3>our server is down.</h3><body>Please exit the program and try again later.</body></html>";
                mainWebView.loadData(summary, "text/html", null);

                Toast.makeText(activity, "Error. Cannot to the server. May be you are not connected to Internet or our server is down or " + description, Toast.LENGTH_LONG)
                        .show();
                mainWebView.onResume();
                    finish();



            }
        });

        mainWebView.loadUrl(getIntent().getStringExtra("url"));

PS 抱歉回复晚了。我相信1年后。

于 2013-10-25T14:00:26.530 回答