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

问题的来历:我加载一个页面的时候,想要在绘屏展示之前取得要加载的内容,并对内容做一些特定的处理。然后再通过loadData来展示修改的内容。原来 使用缓存,也就是CacheManager.CacheResult取得数据,但是也会遇到没有缓存的情况,就是取不到缓存。这时候我就想使用方法直接取 得webview内存的加载的内容。可是不知道怎么去获取。

网友的解决方案是:

具体的做法是在onPageFinished()的时候,通过loadUrl()加载一段javascript,这段脚本的作用 就是通过DOM树取得Body体的内容,再把这些内容作为字符串传到java层的回调函数里面,这样在回调函数里面处理取得的内容,处理完毕,再 loadData展示出来。

这写得很不清楚,不知道什么意思,大家有什么方法解决?

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐