У меня есть веб-представление, которое должно сделать LOG, когда вызывается onReceivedError (). Но проблема в том, что когда у меня очень плохое соединение с Wi-Fi (почти 100% -ная потеря), и веб-просмотр показывает ошибку страницы не доступной html, метод onPageFinished вызывается, а onReceivedError не вызывается
Как это можно решить? Я хочу, чтобы, когда страница недоступна, метод onReceivedError получает вызов!
webView.setWebViewClient(new WebViewClient() { @Override public void onPageFinished(WebView view, String url) { super.onPageFinished(view, url); Log.d("WEBVIEw","ON PAGE FINISHED"); } @Override public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { Log.d("WEBVIEw","ON PAGE error"); } });
onPageFinished
всегда запускается, даже если есть ошибка. Было бы здорово иметь метод под названием onPageSucceeded – но его довольно легко создать.
Создайте свойство в верхней части страницы private boolean webviewSuccess = true;
а также
@Override public void onPageFinished(WebView view, String url) { super.onPageFinished(view, url); Log.d("WEBVIEW","ON PAGE FINISHED"); if(webviewSuccess) { Log.d("WEBVIEW","ON PAGE SUCCEEDED"); } } @Override public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { webviewSuccess = false; Log.d("WEBVIEW","ON PAGE error"); }