我没有找到任何特定的解决方案来隐藏Android中webviews所显示的默认错误。我可以通过错误代码捕获特定错误来显示我自己的自定义错误消息。
这里的问题是,在我的自定义错误消息出现之前,我会在一瞬间看到WebView错误,然后显示我的自定义错误。
以下是一段执行错误处理并显示我自己的自定义错误消息的代码:
protected void onPostExecute(String S) {
mWebView.setWebViewClient(new WebViewClient() {
@Override
public void onReceivedError(WebView view, int errCode, String errDescription, String failingUrl ) {
view.clearView();
Toast.makeText(getApplicationContext(), "Error code is "+errCode, Toast.LENGTH_SHORT).show();
if(errCode == -2 || errCode == -8) {
view.loadData("There seems to be a problem with your Internet connection. Please try later", "text/html", "UTF-8");
}
if(errCode == -14) {
view.loadData("Page cannot be found on server", "text/html", "UTF-8");
}
}
});
mWebView.loadUrl(url);
ShowProgress.dismiss();
}
有人可以就如何隐藏webview错误建议任何修改或建议,只显示我的自定义错误消息吗?感谢您停下来阅读这篇文章。
答案 0 :(得分:2)
尝试添加:
view.stopLoading();
您的源代码如下:
protected void onPostExecute(String S) {
mWebView.setWebViewClient(new WebViewClient() {
@Override
public void onReceivedError(WebView view, int errCode, String errDescription, String failingUrl ) {
try {
view.stopLoading();
}
catch(Exception e){}
view.clearView();
Toast.makeText(getApplicationContext(), "Error code is "+errCode, Toast.LENGTH_SHORT).show();
if(errCode == -2 || errCode == -8) {
view.loadData("There seems to be a problem with your Internet connection. Please try later", "text/html", "UTF-8");
}
if(errCode == -14) {
view.loadData("Page cannot be found on server", "text/html", "UTF-8");
}
}
});
mWebView.loadUrl(url);
ShowProgress.dismiss();
}
答案 1 :(得分:2)
我找不到具体的解决方案,因为这是一个错误#2340。所以我将webview从应用程序中取出并使用常规浏览器。