我正在WebView
加载网站。有时,当用户在设备中没有互联网连接并且用户尝试加载WebView时,它会在加载网站时显示错误。通过它,用户了解网站URL。
如何防止这个问题?
答案 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);
}
}
注意仍然向用户提供有用的信息。理想情况下,您的自定义错误页面仍会包含错误说明。
上述解决方案的好处是,即使连接因任何其他原因(例如服务器关闭)而超时或失败,它也能正常工作。