Есть ли способ установить значение тайм-аута в WebView? Я хочу, чтобы WebView был отключен, если URL-адрес слишком медленный для ответа.
Android WebView TimeOut
Ответ 1
Вы можете сделать это, установив таймер, который проверяет ход текущей страницы, вызывая getProgress(), и если он меньше чем некоторый порог после определенного времени, то вы можете отменить загрузку текущей страницы.
Ответ 2
Мы можем использовать onLoadResource
метод WebViewClient
вместо Timer
. Вот так:
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return false;
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
progressDialog.show();
}
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
Log.d("WEBCLIENT", "onPageFinished");
}
@Override
public void onLoadResource(WebView view, String url) {
super.onLoadResource(view, url);
Log.d("WEBCLIENT","onLoadResource");
if(webView.getProgress() == 100) {
progressDialog.dismiss();
}
}
}