我有WebView
,并且希望将某些网页保存到内部或外部存储以便离线访问。请提供一些例子,如果有人已经通过这个。如何保存完整的网页并稍后加载以供离线访问
2
A
回答
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
如果你有机会到服务器端,最好的想法会应该使用HTML5缓存清单,正如我在这里描述的那样:https://stackoverflow.com/a/14348234/737885
如果你不喜欢您可以尝试简单地将其缓存为HCD建议的内容,但该解决方案取决于HTTP标头和其他考虑事项,因此它可能不是防弹的。
另一种解决方案是通过WebViewClient回调(参见http://developer.android.com/reference/android/webkit/WebViewClient.html)将WebView指向组成该站点的URL,并使用HttpClient手动下载每个资源。这是三者中唯一的解决方案,它创建了可重复使用的网站副本。另一个基于WebView缓存,因此您只能在同一个WebView中使用缓存副本。
相关问题
- 1. 将网页离线保存以便在iOS上稍后阅读
- 2. 如何使用PhoneGap保存网页以供离线使用?
- 3. 使用HTTrack下载完整的网站以供离线使用问题
- 4. 如何保存完整的网页
- 5. 下载并保存文件以供离线使用
- 6. 如何下载单个网页以供离线查看?
- 7. 如何保存帧分离器位置并在稍后恢复?
- 8. 在Android上保存文本文件的位置以供用户稍后访问
- 9. 下载完整的网页进行离线观看
- 10. 将ARKit场景保存到后端并稍后加载?
- 11. 保存离线包含javascript的网页
- 12. 如何保留呈现的页面供以后使用(稍后重新发送)
- 13. 如何登录并保存cookie以便以后使用网页
- 14. 下载的UIImage如果需要的话,并保存供以后
- 15. 保存/加载完整的表格
- 16. 如何保存地图以供离线查看
- 17. 如何离线访问android.developer网站?
- 18. 如何保存当前光标位置并稍后在Vimscript中加载?
- 19. 下载完整的网页
- 20. 如何从远程保存程序下载json文件并保存为离线访问包
- 21. sapui5:最初加载NDA页面并稍后加载Shell
- 22. 字段分配存储以供稍后完成
- 23. 如何将网页保存为Qt WebKit作为“另存为完整网页”
- 24. 如何在UIWebView中缓存内容以便稍后加载?
- 25. 如何在Android中保存完整的网页或HTML文件?
- 26. C++ cURL - 如何将完整的网页保存到文件?
- 27. 如何保存Android WebView中显示的完整网页?
- 28. 保存并加载完整的MATLAB工作环境
- 29. 如何访问最初加载页面时启动的线程,稍后在c#mvc中调用ajax方法?
- 30. 保存我目前的确切网页供以后使用
嘿..你是怎么解决这个问题的..我必须实现类似这样的东西,你的建议会很棒。 – 2013-10-11 13:05:43
非常感谢这个人https://github.com/gregko/WebArchiveReader为他的库,它帮助我加载'WebArchive'保存为'xml' – Antarix 2013-10-12 06:07:29