2010-11-29 260 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