2017-04-14 82 views
2

是否有可能加載多個 WebPages(包括HTML,圖像,JS,CSS)WebView緩存與真正的ProgressBar?我知道這是可能以這種方式來加載一個頁面:WebView多預緩存with progressBar Android

String appCachePath = getApplicationContext().getCacheDir().getAbsolutePath(); 
    URL = "https://stackoverflow.com" 

    webView.getSettings().setJavaScriptEnabled(true); 
    webView.getSettings().setLoadsImagesAutomatically(true); 
    webView.getSettings().setAllowFileAccess(true); 
    webView.getSettings().setAppCacheEnabled(true); 
    webView.getSettings().setAppCacheMaxSize(1024 * 1024 * 8); 
    webView.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT); 
    webView.getSettings().setAppCachePath(appCachePath); 

    if (isNetworkAvailable()) { 
     appCachePath = getApplicationContext().getCacheDir().getAbsolutePath(); 
     webView.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT); 
    } else { 
     Log.e(TAG,"Load page from cache"); 
     webView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ONLY); 
    } 

,它將使該頁面在離線狀態下加載,但它是任何方式來創建自定義的WebView,我將有機會加載多個URL中陣列或列表,如

List<String> urls = new ArrayList<>(); 
urls.add("https://stackoverflow.com"); 
urls.add("https://google.com"); 
urls.add("https://facebook.com"); 
webView.loadURL(ursl); 

而且我還需要一個總的progressBar加載這些WebPages。我知道我可以設置爲WebChromeClient web視圖,如:

webView.setWebChromeClient(new WebChromeClient() { 
      public void onProgressChanged(WebView view, int progress) { 
       Log.d(TAG,"onProgressChanged" + progress); 
      } 
     } 

,但它會顯示只加載一個網頁,進步,當我需要幾頁的總進度。

我不想寫我自己的WebPage抓取器,並將其存儲在內部存儲器中,因爲它需要很長時間,可能會導致很多不同的錯誤和錯誤。

請問,你能給我一些想法嗎?

回答

1

是否有可能加載多個WebPages(包括HTML,圖像,JS,CSS)WebView緩存與真正的ProgressBar?

不可能。

訪問Android Doc文件reference