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

来源:爱站网时间:2020-05-13编辑:网友分享
webview在web页面解析是很正常的,我们都知道这个功能是在网络断开后都能正常工作的功能,那么问题来了,Android的webview支持HTML5的离线应用功能详细配置,大家了解吗?爱站技术频道为你细细道来。

webview在web页面解析是很正常的,我们都知道这个功能是在网络断开后都能正常工作的功能,那么问题来了,Android的webview支持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中找到的线索。

爱站技术频道在这里为大家带来了Android的webview支持HTML5的离线应用功能详细配置,网络上有很多技术并不成熟,所以大家在选择的过程中,一定要小心谨慎。

上一篇:Android的文本和输入之创建输入法教程

下一篇:Android取消EditText自动获取焦点默认行为

您可能感兴趣的文章

相关阅读

热门软件源码

最新软件源码下载