Android WebView TimeOut

Есть ли способ установить значение тайм-аута в WebView? Я хочу, чтобы WebView был отключен, если URL-адрес слишком медленный для ответа.

Ответ 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();
        }    
    }
}