そのエラーを非表示にして、空白のページとダイアログのみを表示したい。
どうすれば非表示にできますか?
それほど明白ではありません。WebViewClient は、onReceivedError メソッドをオーバーライドしても、標準のエラー ページを開くためです。そのため、エラー イベントを処理した後にカスタム エラー ページを開く必要があります。
したがって、WebViewClient で onReceivedErrorをオーバーライドする必要があります。次に、必要なエラー コードを処理する場合 (WebViewClient の ERROR_ 定数を参照)、空白のページまたは別のページを開いて、標準の Android の「Web ページが利用できません」ページを非表示にする必要があります。
このようなもの:
@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 をロードします。