有没有办法预先缓存网页以使用 Android WebView 查看?
Posted
技术标签:
【中文标题】有没有办法预先缓存网页以使用 Android WebView 查看?【英文标题】:Is there a way to pre-cache a web page for viewing with an Android WebView? 【发布时间】:2011-11-29 09:44:54 【问题描述】:我已经阅读了有关 html5 缓存清单的信息,并且我看到 android 确实支持使用缓存清单来缓存网站。我想使用缓存清单下载我的网站所需的所有资源以预加载它,然后打开一个 WebView 并使用预缓存的资源显示远程网站。我想以某种方式预先缓存我的远程页面,最好不使用 WebView 进行缓存。
使用 WebView 进行预缓存过程的问题在于,使用 WebView 加载网页会呈现并执行页面,而不是仅仅下载它。
我读过这篇文章:http://alex.tapmania.org/2010/11/html5-cache-android-webview.html,但是拥有 WebView 支持缓存并不是我想要的。我希望在完成预缓存资源后立即加载过程(假设远程网站的缓存清单 / etags 与缓存版本相同),而不是等待 WebView 加载并缓存所有内容第一次访问。
预缓存网页以供以后查看的正确方法是什么?
谢谢!
【问题讨论】:
【参考方案1】:您想要做的事情需要为使用数据库 API 的 HTML5 应用程序实现应用程序缓存、链接资源、cookie 和本地数据库存储机制,这是当今浏览器所做工作的重要组成部分。我不建议您自己进行缓存,不仅因为它的工作量很大,而且因为我不记得WebView
中的任何方法以及接受外部缓存的朋友(WebViewClient
等)。
但是您的问题有一个非常简单的解决方案:您可以在视图中放置一个WebView
,并将其visibility
设置为gone
。然后在页面加载完成后使其可见。 WebView
还会自动为您的应用保留缓存,以便下次运行时更快地加载页面。
要隐藏您的WebView
,然后自动显示它,您只需覆盖WebViewClient 中的onPageFinished
。
【讨论】:
以上是关于有没有办法预先缓存网页以使用 Android WebView 查看?的主要内容,如果未能解决你的问题,请参考以下文章