我想隐藏那个错误,只显示一个空白页和一个对话框。
我该如何隐藏它?
不是那么明显。因为 WebViewClient 无论如何都会打开标准错误页面,即使您覆盖 onReceivedError 方法。所以我们需要在处理错误事件后打开自定义错误页面。
因此,您应该覆盖WebViewClient 中的 onReceivedError,然后如果您处理所需的错误代码(请参阅 WebViewClient 中的 ERROR_ 常量),您应该打开空白页面或其他页面以隐藏标准 Android“网页不可用”页面。
像这样的东西:
@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
if (errorCode == neededErrorCode) {
hideErrorPage(view);
}
}
private void hideErrorPage(WebView view) {
// Here we configurating our custom error page
// It will be blank
String customErrorPageHtml = "<html></html>";
view.loadData(customErrorPageHtml, "text/html", null);
}
您应该重写 onReceiveError 方法。
在该方法中,只需创建您的自定义视图即可查看。例如加载一个新的 url 或一些自定义的 html。