2013-05-07 37 views
2

我有WebView,並且希望將某些網頁保存到內部或外部存儲以便離線訪問。請提供一些例子,如果有人已經通過這個。如何保存完整的網頁並稍後加載以供離線訪問

+0

嘿..你是怎麼解決這個問題的..我必須實現類似這樣的東西,你的建議會很棒。 – 2013-10-11 13:05:43

+0

非常感謝這個人https://github.com/gregko/WebArchiveReader爲他的庫,它幫助我加載'WebArchive'保存爲'xml' – Antarix 2013-10-12 06:07:29

回答

1

嘗試下面的代碼實現您的任務,並檢查this鏈接: -

WebView webView = new WebView(context); 
webView.getSettings().setAppCacheMaxSize(5 * 1024 * 1024); // 5MB 
webView.getSettings().setAppCachePath(getApplicationContext().getCacheDir().getAbsolutePath()); 
webView.getSettings().setAllowFileAccess(true); 
webView.getSettings().setAppCacheEnabled(true); 
webView.getSettings().setJavaScriptEnabled(true); 
webView.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT); // load online by default 

if (!isNetworkAvailable()) { // loading offline 
    webView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK); 
} 

webView.loadUrl("http://www.google.com"); 

許可需要

<uses-permission android:name="android.permission.INTERNET"/> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> 
+0

已檢查我提供給你的鏈接,上面的代碼!!!! – duggu 2013-05-07 11:18:19

+0

我很欣賞你的答案,但我真正想要的是我想給選項來保存該網頁,並在'ListView'中詳細顯示如title,更多詳細信息請參閱此應用程序的脫機功能https://play.google.com /store/apps/details?id=com.world.newspapers – Antarix 2013-05-08 04:35:51

0

如果你有機會到服務器端,最好的想法會應該使用HTML5緩存清單,正如我在這裏描述的那樣:https://stackoverflow.com/a/14348234/737885

如果你不喜歡您可以嘗試簡單地將其緩存爲HCD建議的內容,但該解決方案取決於HTTP標頭和其他考慮事項,因此它可能不是防彈的。

另一種解決方案是通過WebViewClient回調(參見http://developer.android.com/reference/android/webkit/WebViewClient.html)將WebView指向組成該站點的URL,並使用HttpClient手動下載每個資源。這是三者中唯一的解決方案,它創建了可重複使用的網站副本。另一個基於WebView緩存,因此您只能在同一個WebView中使用緩存副本。

相關問題