Android的webview支持HTML5的离线应用功能
HTML5的离线应用功能可以使得WebApp即使在网络断开的情况下仍能正常使用,这是个非常有用的功能。近来工作中也要用到HTML5离线应用功能,由于是在Android平台上做,所以自然而然的选择Webview来解析网页。但如何使Webivew支持HTML5离线应用功能呢,经过反复摸索和上网查找资料,反复做试验终于成功了。
首先需配置webview的的一些属性,假设activity中已经有了一个Webview的实例对象,名为m_webview,然后增加以下代码:
WebSettings webseting = m_webview.getSettings();webseting.setDomStorageEnabled(true); webseting.setAppCacheMaxSize(1024*1024*8);//设置缓冲大小,我设的是8MString appCacheDir = this.getApplicationContext().getDir("cache", Context.MODE_PRIVATE).getPath(); webseting.setAppCachePath(appCacheDir);webseting.setAllowFileAccess(true);webseting.setAppCacheEnabled(true);webseting.setCacheMode(WebSettings.LOAD_DEFAULT);
webview可以设置一个WebChromeClient对象,在其onReachedMaxAppCacheSize函数对扩充缓冲做出响应。代码如下:
m_webview.setWebChromeClient(m_chromeClient);private WebChromeClient m_chromeClient = new WebChromeClient(){//扩充缓存的容量 @Overridepublic void onReachedMaxAppCacheSize(long spaceNeeded, long totalUsedQuota, WebStorage.QuotaUpdater quotaUpdater) { quotaUpdater.updateQuota(spaceNeeded * 2); } };
其次要修改http服务器中的配置,使其支持text/cache-manifest,我使用的是apache服务器,是windows版本的,在apache的conf文件夹中找到mime.types文件,打开后在文件的最后加上
“text/cache-manifest mf manifest”,重启服务器即可。这一步很重要,我就是因为服务器端没有配置这个,所以失败了好多次,最后是在附录链接1的回复中找到的线索。
经过以上设置Webview就可以支持HTML5的离线应用了。
附录链接1中说缓冲目录应该是getApplicationContext().getCacheDir().getAbsolutePath();但我经过试验后发现设置那个目录不起作用,可能是Android版本不同吧,我的是Android4.0.3,而他的可能是以前的Android版本吧。
缓冲目录使用getApplicationContext().getDir("cache", Context.MODE_PRIVATE).getPath()是从附录链接2中找到的线索。
附录链接:
1.http://alex.tapmania.org/2010/11/html5-cache-android-webview.html
2.http://johncookie.iteye.com/blog/1182459
3.HTML5 Offline官方文档:http://www.w3.org/TR/html5/offline.html#manifests
Android的webview支持HTML5的离线应用功能相关推荐
- android webview video标签,Android WebView支持html5 video标签
看到这个标题很兴奋了吧,但是内容肯定会让你失望...这先告诉结果了,我没在2.3上搞出什么名堂来. 起因是项目需要在android 2.3.*的版本上调用有video标签的页面,调研是否支持.百度,g ...
- android webview优酷,android 使用WebView 支持播放优酷视频,土豆视频
看了很多文章和所谓的解决android WebView播放优酷,土豆等视频的办法,都是什么setPluginsEnabled,在android 4.x之后都不好使,压根就没这函数,因为android ...
- android 使用WebView 支持播放优酷视频,土豆视频
看了很多文章和所谓的解决android WebView播放优酷,土豆等视频的办法,都是什么setPluginsEnabled,在android 4.x之后都不好使,压根就没这函数,因为android ...
- android webview单向认证,android 让webview支持自签名证书https 双向认证(SSL)
最近完成一个项目,安全级别比较高.所以涉及到https双向认证,在网上找了很多资料都没有完美的解决方案.最后参考了org.sandrob.sslexample的实现方式,结合实际情况才完成该技术难题, ...
- 安卓开发之android使用webview时按后退会退出而不是回退的问题
最近公司使用android打包html5游戏, 使用android点webview打包html5游戏,代码都好了,具体如下 public class MainActivity extends Acti ...
- android实现在线阅读功能,Android使用WebView实现离线阅读功能
1.先看效果图,加载动画: 加载完成,注意当前为飞行模式! 2.使用 1).让你的javabean实现OffLineLevelItem接口,因为我的这个离线阅读支持多级下载,比如Demo中的每个频道下 ...
- html5 android 拍照上传,android webview使用html5 上传相册、拍照照片
本人编程新手,这次做的功能是android webview 嵌入HTML5的页面,页面中有一个标签,iOS直接就支持,但android中不支持,网上的帖子说是因为android屏蔽了文件上传功能还是怎 ...
- android canvas 保存图片,ionic3 html5 video 抓图保存到手机相册,解决Android手机不支持Canvas drawImage问题...
当然百度出上W条答案 上代码,相信下面代码和小伙伴大同吧 相信好多做webview app的小伙伴们都有同样的问题,在pc上能轻松实现video 抓图.但是在android手机大多是不支持canvas ...
- Android WebView 支持H5图片上传input type=file
2019独角兽企业重金招聘Python工程师标准>>> Android WebView 缓存处理 Android WebView 支持H5图片上传<input type=&qu ...
最新文章
- java中treemap释放_81.Java集合之TreeMap
- [九省联考2018]IIIDX
- 活动结束|金融圈第19期分享:数据系统如何防范金融非统性风险?
- kafka常用命令及问题解决
- Java编程讲义之Eclipse开发工具
- jquery创建并行对象或者叫合并对象
- 好代码是管出来的——使用Git来管理源代码
- Jquery 实现原理之 Ajax
- Windows 平台安装 MongoDB
- ef 批量保存 oracle,mybatis-oracle与mysql批量添加
- BIND配置文件详解(二)
- 如何将SL的image保存到SL的独立存储文件系统
- 计算机网络的分类 ppt,认识计算机网络ppt
- APU工业控制领域应用
- 【C语言】游戏管理系统简单设计
- Hbuilder x安装教程(前端html5开发)
- docker安装gamit_gamit的安装步骤
- 光盘怎么刻录服务器系统,如何刻录系统光盘?小编手把手教你电脑Windows刻录系统光盘的方法...
- 计算机图形学圆反走样代码,计算机图形学——反走样
- 黑客急于利用微软的零日漏洞