利用HTML5开发Android(6)---构建HTML5离线应用
需要提供一个cache manifest文件,理出所有需要在离线状态下使用的资源
例如
Manifest代码
1 CACHE MANIFEST 2 #这是注释 3 images/sound-icon.png 4 images/background.png 5 clock.html 6 clock.css 7 clock.js 8 9 NETWORK: 10 test.cgi 11 12 CACHE: 13 style/default.css 14 15 FALLBACK: 16 /files/projects /projects
1 在html标签中声明 <html manifest="clock.manifest"> 2 3 HTML5离线应用更新缓存机制 4 分为手动更新和自动更新2种 5 自动更新: 6 在cache manifest文件本身发生变化时更新缓存 资源文件发生变化不会触发更新 7 手动更新: 8 使用window.applicationCache 9 Js代码
1 if (window.applicationCache.status == window.applicationCache.UPDATEREADY) { 2 window.applicationCache.update(); 3 }
在线状态检测
HTML5 提供了两种检测是否在线的方式:navigator.online(true/false) 和 online/offline事件。
在Android中构建离线应用
Java代码
1 //开启应用程序缓存 2 webSettingssetAppCacheEnabled(true); 3 String dir = this.getApplicationContext().getDir("cache", Context.MODE_PRIVATE).getPath(); 4 //设置应用缓存的路径 5 webSettings.setAppCachePath(dir); 6 //设置缓存的模式 7 webSettings.setCacheMode(WebSettings.LOAD_DEFAULT); 8 //设置应用缓存的最大尺寸 9 webSettings.setAppCacheMaxSize(1024*1024*8); 10 11 //扩充缓存的容量 12 public void onReachedMaxAppCacheSize(long spaceNeeded, 13 long totalUsedQuota, WebStorage.QuotaUpdater quotaUpdater) { 14 quotaUpdater.updateQuota(spaceNeeded * 2); 15 }