检查网站是否能够在WebView中加载

时间:2014-02-11 05:48:26

标签: android android-webview

我正在WebView加载网站。有时,当用户在设备中没有互联网连接并且用户尝试加载WebView时,它会在加载网站时显示错误。通过它,用户了解网站URL。

如何防止这个问题?

2 个答案:

答案 0 :(得分:1)

检查:

 public boolean isConnectingToInternet() {
    ConnectivityManager connectivity = (ConnectivityManager) getApplicationContext() 
            .getSystemService(Context.CONNECTIVITY_SERVICE);
    if (connectivity != null) {

        NetworkInfo[] info = connectivity.getAllNetworkInfo();
        if (info != null)
            for (int i = 0; i < info.length; i++)
                if (info[i].getState() == NetworkInfo.State.CONNECTED) {

                    return true;
                }

    }

    return false;
}

现在叫它:

   if(isConnectingToInternet()) {

     // Load your website in webview

   } else {
          // No Internet connection

   }

答案 1 :(得分:0)

如果您想阻止用户看到错误页面,您可以覆盖onReceivedError回调:

class MyWebViewClient extends WebViewClient {

    ...

    @Override
    public void onReceivedError (WebView view, int errorCode, String description, String failingUrl) {
       final String myErrorPageUrl = "...";
       view.loadUrl(myErrorPageUrl);
    }
}

注意仍然向用户提供有用的信息。理想情况下,您的自定义错误页面仍会包含错误说明。

上述解决方案的好处是,即使连接因任何其他原因(例如服务器关闭)而超时或失败,它也能正常工作。

相关问题