uniapp清除缓存和获取数据

关于获取软件缓存信息和清除缓存信息

清除缓存

在methods开始使用这个 立即函数里面执行

文档

// 获取缓存数据大小 在立即执行函数
			formatSize() {
				let that = this;
				plus.cache.calculate(function(size) { 计算应用已使用的缓存数据大小
				     console.log(size)  //size计算获取到的大小
					let sizeCache = parseInt(size);
					 // console.log(sizeCache)
					if (sizeCache == 0) {
						that.fileSizeString = "0B";
					} else if (sizeCache < 1024) {
						that.fileSizeString = sizeCache + "B";
					} else if (sizeCache < 1048576) {
						that.fileSizeString = (sizeCache / 1024).toFixed(2) + "KB";
					} else if (sizeCache < 1073741824) {
						that.fileSizeString = (sizeCache / 1048576).toFixed(2) + "MB";
					} else {
						that.fileSizeString = (sizeCache / 1073741824).toFixed(2) + "GB";
					}
				});
				console.log(this.fileSizeString)
			},

下面这个是清除缓存

  1. 相关文档
  2. plus.io.resolveLocalFileSystemURL 通过URL参数获取目录对象或文件对象
  3. 递归删除其下的所有文件及子目录
  4. plus.android.invoke
  5. runtimeMainActivity: 获取应用主Activity实例对象
// 点击开始清除缓存
			iosx() {
				console.log('11111')
				// this.showw = true
				let that = this;
				let os = plus.os.name;
				if (os == 'Android') {
					let main = plus.android.runtimeMainActivity();
					let sdRoot = main.getCacheDir();
					let files = plus.android.invoke(sdRoot, "listFiles");
					let len = files.length;
					for (let i = 0; i < len; i++) {
						let filePath = '' + files[i]; // 没有找到合适的方法获取路径,这样写可以转成文件路径  
						plus.io.resolveLocalFileSystemURL(filePath, function(entry) {
							if (entry.isDirectory) {
								entry.removeRecursively(function(entry) { //递归删除其下的所有文件及子目录  
									uni.showToast({
										title: '缓存清理完成',
										duration: 2000
									});
									that.formatSize(); // 重新计算缓存  
								}, function(e) {
									console.log(e.message)
								});
							} else {
								entry.remove();
							}
						}, function(e) {
							console.log('文件路径读取失败')
						});
					}
				} else { // ios  
					plus.cache.clear(function() {
						uni.showToast({
							title: '缓存清理完成',
							duration: 2000
						});
						that.formatSize();
					});
				}
			},

注意:代码是模仿别人写的 效果是可以实现 关于清除逻辑哪里

plus.android.invoke(sdRoot, "listFiles");
plus.io.resolveLocalFileSystemURL
plus.android.runtimeMainActivity();
					let sdRoot = main.getCacheDir();
					let files = plus.android.invoke(sdRoot, "listFiles");
					这里调用了啥

感觉不是很明白 有路过的老哥 希望可以帮忙指点一下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值