安卓Webview缓存网页数据(无网络正常显示)

 

热度 1已有 52 次阅读2016-8-26 17:53 |个人分类:常见问题|系统分类:移动开发

一、需求经历


最近的项目是一个原生 +webview 显示的 APP,一开始的时候,网站那边要求我们安卓给他做缓存。后来由于某些因素,这个需求取消了。

由于需求取消,我也没想过怎么去做这个缓存,由于使用 webview 比较少,最这个不是很熟悉。

二、使用场景结合


后来碰巧又和同事 A 聊到了这个话题,原生 APP 和 webview 加载有什么不一样,同事 A 说一打开 APP 的时候,webview 需要去加载,若没有网络的话,就没东西显示,影响用户体验,而原生 APP,就算没有网络,也可以显示内容。

说到这里,我认真思考一番,我们做个缓存,不就得了?由于之前接触过 HTML5 的开发,印象中是有这个一个机制去把这个事情实现。

三、实现


对于 H5 的应用有一个 应用程序缓存(Application Cache) 。

这个实现起来非常轻松。

只要在网站的目录下配置一个扩展名为:.appcache 的 Manifest 文件,注明哪些文件需缓存,哪些文件必须经过网络去加载,然后在<html> 标签中加入 <html manifest="demo.appcache"> 即可完成缓存的实现。

这个时候,我们用 webview 去加载这个网站,断网,再打开 APP,网页一样可以显示出来,里面的 js 功能还可以用的哦(这是废话啦)。

参考:

http://www.w3school.com.cn/html5/html_5_app_cache.asp

推荐:

Android应用内存泄露分析、改善经验总结

原文地址:https://www.cnblogs.com/android-blogs/p/5816843.html