Android WebView TimeOut

use*_*926 17 android android-webview

有没有办法在WebView中设置超时值?如果网址响应太慢,我希望WebView有时间.

bhu*_*ups 11

您可以通过设置一个Timer来检查当前页面的进度,通过调用getProgress(),如果它在某个指定的时间后小于某个阈值,那么您可以忽略当前页面的加载.


Joh*_*ohn 5

我们可以使用代替的onLoadResource方法.像这样:WebViewClientTimer

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();
        }    
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 问题不是关于进度条,而是超时.如果网页加载完全停留在某个百分比,这种方法将不起作用,因为这些函数都不会被调用,因此不可能采取行动. (3认同)