android webview 设置缓存的相关操作

本文介绍了在Android中如何设置WebView的缓存机制,以实现在离线状态下仍能显示网页内容。主要设置了JavaScript交互、DOM存储、数据库存储及缓存路径,并详细讲解了不同缓存模式的用法,包括LOAD_CACHE_ONLY、LOAD_DEFAULT、LOAD_NO_CACHE和LOAD_CACHE_ELSE_NETWORK等,以确保在网络不稳定时优先使用本地缓存。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天获取webview页面,要使其在断网情况下也可显示,那么只能使用其缓存机制,webview的缓存相关设置在代码中如下:

WebSettings websetting = webview.getSettings();

websetting.setJavaScriptEnabled(true);   //与JS交互

websetting.setDomStorageEnabled(true);    //开启DOM形式存储

websetting.setDatabaseEnabled(true);   //开启数据库形式存储

String appCacheDir = this.getApplicationContext().getDir("cache", Context.MODE_PRIVATE).getPath();   //缓存数据的存储地址

websetting.setAppCachePath(appCacheDir);

websetting.setAppCacheEnabled(true);  //开启缓存功能

websetting.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);      //缓存模式

websetting.setAllowFileAccess(true);

websetting.setAppCacheMaxSize(size);      //设置缓存文件大小,但现在已不再提倡这个方法

关于缓存模式,有五种,根据不同需求可以进行设置:

LOAD_CACHE_ONLY:  不使用网络,只读取本地缓存数据

LOAD_DEFAULT:  根据cache-control决定是否从网络上取数据。

LOAD_CACHE_NORMAL: API level 17中已经废弃, 从API level 11开始作用同LOAD_DEFAULT模式

LOAD_NO_CACHE: 不使用缓存,只从网络获取数据.

LOAD_CACHE_ELSE_NETWORK,只要本地有,无论是否过期,或者no-cache,都使用缓存中的数据。


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值