Domanda

C'è un modo per impostare il valore di timeout in WebView? Voglio che il WebView da timeouted Se l'URL è troppo lento per la risposta.

È stato utile?

Soluzione

È possibile farlo attraverso la creazione di un timer che controlla per il progresso della pagina corrente chiamando getProgress () e se è inferiore a una certa soglia, dopo un certo periodo di tempo specificato, allora si può respingere il caricamento della pagina corrente.

Altri suggerimenti

Si può utilizzare il metodo di onLoadResource WebViewClient invece di Timer. In questo modo:

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();
        }    
    }
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top