我正在创建一个应用程序并使用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