Android的webview支持HTML5的离线应用功能详细配置

financist

financist

2016-02-19 11:19

想要天天向上,就要懂得享受学习。图老师为大家推荐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);//设置缓冲大小,我设的是8M
String 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(){
//扩充缓存的容量
@Override
public 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中找到的线索。
展开更多 50%)
分享

猜你喜欢

Android的webview支持HTML5的离线应用功能详细配置

编程语言 网络编程
Android的webview支持HTML5的离线应用功能详细配置

android WebView加载html5介绍

编程语言 网络编程
android WebView加载html5介绍

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

让JavaScript拯救HTML5的离线存储

Web开发
让JavaScript拯救HTML5的离线存储

让IE支持HTML5的方法

Web开发
让IE支持HTML5的方法

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

IE支持HTML5的解决方法

Web开发
IE支持HTML5的解决方法

HTML5 离线应用之打造零请求、无流量网站的解决方法

Web开发
HTML5 离线应用之打造零请求、无流量网站的解决方法

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

Android取消EditText自动获取焦点默认行为

Android取消EditText自动获取焦点默认行为

HTML5之WebGL 3D概述(上)—WebGL原生开发开启网页3D渲染新时代

HTML5之WebGL 3D概述(上)—WebGL原生开发开启网页3D渲染新时代
下拉加载更多内容 ↓