安卓Webview缓存网页数据(无网络正常显示)
一、需求经历
最近的项目是一个原生 +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应用内存泄露分析、改善经验总结
安卓Webview缓存网页数据(无网络正常显示)的更多相关文章
- Android WebView 实现缓存网页数据
WebView中存在着两种缓存:网页数据缓存(存储打开过的页面及资源),H5缓存(即AppCache). 将我们浏览过的网页url已经网页文件(css.图片.js等)保存到数据库表中 缓存模式(5种) ...
- 安卓 WebView加载本地图片时居中显示
在一个项目中使用WebView显示gif图片(自定义的View无法放大gif),当图片过小时只在左侧显示,经过研究发现无论设置android:layout_gravity="center_h ...
- 安卓APP承载网页(WebView)
安卓APP自身如何打开网页,如何制作一个简单的浏览器,WebView在其中将是一个重要的角色.WebView是一个基于WebKit引擎.展现Web页面的控件. Webview 是一个基于webkit引 ...
- Android开发:通过 webview 将网页打包成安卓应用
商业转载请联系作者获得授权,非商业转载请注明出处. For commercial use, please contact the author for authorization. For non-c ...
- WebApp:如何让安卓的webview缓存webapp的html、js和图片等资源
一.开发环境 客户端:安卓+webview(vuejs) 服务器端:tomcat 8.0 二.问题 使用安卓原生+web(基于webpack+vuejs)的方式开发了一个安卓应 ...
- Asp.net 使用正则和网络编程抓取网页数据(有用)
Asp.net 使用正则和网络编程抓取网页数据(有用) Asp.net 使用正则和网络编程抓取网页数据(有用) /// <summary> /// 抓取网页对应内容 /// </su ...
- 【android】WebView缓存数据收集
Android WebView 缓存 Android高手进阶教程(二十四)之---Android WebView的缓存!!! Android webView 缓存 Cache + HTML5离线功能 ...
- H5 和移动端 WebView 缓存机制解析与实战
本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:https://mp.weixin.qq.com/s/qHm_dJBhVbv0pJs8Crp77w 作者:叶 ...
- Android WebView 缓存机制和模式详解
当我们加载Html时候,会在我们data/应用package下生成database与cache两个文件夹: 我们请求的Url记录是保存在webviewCache.db里,而url的内容是保存在webv ...
随机推荐
- loj2055 「TJOI / HEOI2016」排序
ref #include <iostream> #include <cstring> #include <cstdio> using namespace std; ...
- Hyper-v Server 2012 R2增强会话模式
从Windows Server 2012 R2开始,通过使用Hyper-v增强会话模式Hyper-v中的虚拟机允许重定向虚拟机连接会话中的本地资源.这是因为Windows Server 2012 及早 ...
- 【Plus One】cpp
题目: Given a non-negative number represented as an array of digits, plus one to the number. The digit ...
- leetcode 【 Merge Sorted Array 】python 实现
题目: Given two sorted integer arrays A and B, merge B into A as one sorted array. Note:You may assume ...
- jenkins忘记管理员登陆密码
配置文件的路径在.../jenkins/config.xml (线上路径是/usr/local/tomcat7/webapps/jenkins/config.xml) 修复办法:千万注意:修复前一定要 ...
- Google Optimize 安装使用教程
Google Optimize 介绍 打开链接 https://optimize.google.com/optimize/signup/ 填入电邮地址后等待注册邀请 Google Optimize是什 ...
- C#HTTP POST文件数据
/// <summary> /// 上传文件 /// </summary> /// <param name="uriStr">服务器网址< ...
- Visual Studio调试技巧 -- Attach to Process
本文系作者原创,但可随意转载.另:图中使用的IDE为Visual Studio 2013 RC 英文版. 一般写完代码时,我们通常会启动调试运行一下看看是否正确,启动运行的方式无非是F5-- Star ...
- oracle char和varchar2的区别
char的长度是固定的,varchar2长度是可以变化的.比如:存储的是“abc”,对于char(20)来说,表示你存储的占20个字节(包括17个空字符):而对于varchar2(20)来说,表示你存 ...
- 一个javascript继承和使用的例子
继承可以帮助我们实现代码的重用,把对象的属性写入构造函数,对象的方法写入原型后,以下例子演示继承的使用: 示例的css和js在后 父实例,得到一个间隔1s的轮播: <!DOCTYPE html& ...