2010-11-29 80 views
16

有没有办法在WebView中设置超时值? 如果网址太慢而无法响应,我希望WebView被超时。Android WebView TimeOut

+1

这shud帮助http://stackoverflow.com/a/7772884/169630 – 2012-04-12 06:02:34

回答

12

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

+1

所以你的意思是我添加计时器,并通过调用getProgress(查看当前页面的进度),如果不是100但我可以调用stopLoading()。 – user430926 2010-11-29 11:04:29

5

我们可以使用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(); 
     }  
    } 
} 
+0

我不认为这将工作,如果Web视图完全卡住。 – 2016-09-21 18:34:04