webview无法取得缓存的情况


搞很久,终于发现原来是这个问题,当网页里面定义了<meta http-equiv="Cache-Control" content="no-Cache"/>,在模拟器上测试可以取得缓存,但在真机上我们的webview就无法取得缓存了,每次前进后退都会重新联网。这样很不好,因为webview不支持wml,我想访问wml的网页后获取缓存的内容,将它转换为html,可是就是取不到缓存,听说可以通过读内存来获取当前加载的内容,但不知道怎么获取

问题的来历:我加载一个页面的时候,想要在绘屏展示之前取得要加载的内容,并对内容做一些特定的处理。然后再通过loadData来展示修改的内容。原来 使用缓存,也就是CacheManager.CacheResult取得数据,但是也会遇到没有缓存的情况,就是取不到缓存。这时候我就想使用方法直接取 得webview内存的加载的内容。可是不知道怎么去获取。
网友的解决方案是:
具体的做法是在onPageFinished()的时候,通过loadUrl()加载一段javascript,这段脚本的作用 就是通过DOM树取得Body体的内容,再把这些内容作为字符串传到java层的回调函数里面,这样在回调函数里面处理取得的内容,处理完毕,再 loadData展示出来。
这写得很不清楚,不知道什么意思,大家有什么方法解决?

Androidwebview

放開那個蘿莉 12 years, 6 months ago

我理解你这个问题和webView没有多大的关系。你应该只是想在通过webview中的loadData打开一个本地的数据。这个数据想提前加载。

如果是这样的情况,那么就是普通的加载缓存的问题,将缓存存在在SD卡中,或者/data/data/you.pkg/files/下,读取的时候直接寻址读取即可,读取和写入都可以自己控制,不需要CacheManager.CacheResult。

初音的超甩葱炮 answered 12 years, 6 months ago

Your Answer