我正在創建一個應用程序並使用WebView打開URL。我看到一些應用程序向用戶提供了「保存頁面」(一個網頁)選項。即使沒有網絡時,我如何保存WebView內容?
我想知道如何從我的WebView中保存一個頁面,以便我可以在請求時將它顯示給用戶。
我正在創建一個應用程序並使用WebView打開URL。我看到一些應用程序向用戶提供了「保存頁面」(一個網頁)選項。即使沒有網絡時,我如何保存WebView內容?
我想知道如何從我的WebView中保存一個頁面,以便我可以在請求時將它顯示給用戶。
也許使用緩存的是,你應該檢查http://developer.android.com/reference/android/webkit/WebSettings.html
的最佳方式......爲「管理狀態設置爲網頁視圖。當一個網頁視圖中創建第一 ,它獲得一組默認設置,這些默認設置 將從任何getter調用中返回,從WebView.getSettings()獲得的WebSettings對象獲得 與WebView的生命週期相關聯,如果一個 WebView被銷燬,WebSettings上的任何方法調用都會拋出 IllegalStateException。「
Especifically:
public static final int **LOAD_CACHE_ONLY**
自:API等級1 不要使用網絡負載僅從緩存。與setCacheMode(int)一起使用。 常量值:3(0x00000003)
或者
public static final int **LOAD_CACHE_ELSE_NETWORK**
自:API等級1 使用緩存,如果內容是存在的,即使過期(例如,歷史NAV)如果不是在緩存中,從網絡加載。與setCacheMode(int)一起使用。 恆值:1(00000001)
UPDATE1:
HMM例如 「所有生命的蹩腳的代碼」:
public static InputStream fetch(String url) throws MalformedURLException,
IOException {
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpGet request = new HttpGet(url);
HttpResponse response = httpClient.execute(request);
return response.getEntity().getContent();
}
private static String convertStreamToString(InputStream is)
throws IOException {
StringWriter writer = new StringWriter();
IOUtils.copy(is, writer, "UTF-8");
return writer.toString();
}
所以,你可以用提取網址的InputStream獲取(字符串URL )然後將該流轉換爲帶有私有靜態字符串的字符串convertStreamToString(InputStream is)並將該流保存到文件中,稍後可以將該內容加載到webview .....稍後閱讀
UPDATE2:
或者你可以做一些Java序列東西......不記得,如果在Android上的xD這項工作
Discover the secrets of the Java Serialization APIhttp://java.sun.com/developer/technicalArticles/Programming/serialization/
但是,這是網頁視圖緩存。這不會像我們在PC上那樣行事。我們在SDCard上保存頁面的位置。像「WikiDroid」提供「保存頁面」並將其保存到SDcard。 – Arslan
如果你想保存在SD卡上的頁面,那麼你可以獲取URL文本,並將其寫入SD卡 – yeradis
寫入內容到SD卡上的文件看起來是非常好的想法。讓我試試...謝謝 – Arslan