uniapp实现清除缓存

一、页面加载时计算缓存大小(H5不支持)
javascript 复制代码
data() {
    return {
        // 缓存大小展示到页面上
        fileSizeString: '0KB'
    }
}

// 获取缓存大小
			formatSize() {
				let that = this;
				// #ifndef H5
				plus.cache.calculate(function(size) {
					let sizeCache = parseInt(size);
					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";
					}
				});
				// #endif
			},
二、点击清除缓存按钮调用清理缓存方法
javascript 复制代码
// 清除缓存按钮
			clearStorage() {
				let that = this
				uni.showModal({
					title: '清除缓存',
					content: '您确定要清除缓存吗?',
					success: function(res) {
						if (res.confirm) {
							that.clearCache()
						}
					}
				});
			},
三、清理缓存(并重新计算缓存大小)
javascript 复制代码
// 清理缓存
			clearCache() {
				let that = this;
				// #ifndef H5
				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({
										icon: 'none',
										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({
							icon: 'none',
							title: '缓存清理完成',
							duration: 2000
						});
						that.formatSize();
					});
				}
				// #endif
			},
相关推荐
mameng19981 小时前
Redis遇到热点key如何解决
数据库·redis·缓存
小红的布丁1 小时前
Redis 持久化详解:AOF、RDB 与混合持久化如何平衡性能和可靠性
数据库·redis·缓存
一个有温度的技术博主2 小时前
Redis Cluster 核心原理:哈希槽与数据路由实战
redis·算法·缓存·哈希算法
周末也要写八哥2 小时前
追求性能极致为何不用Redis?
数据库·redis·缓存
一个有温度的技术博主3 小时前
Redis集群实战:如何实现节点的弹性伸缩与数据迁移?
redis·分布式·缓存·架构
Jul1en_4 小时前
【Redis】常用命令及定时器实现思想
数据库·redis·缓存
杰克尼4 小时前
redis(day02-短信登录)
数据库·redis·缓存
刘~浪地球5 小时前
Redis 从入门到精通(十四):内存管理与淘汰策略
数据库·redis·缓存
软希网分享源码5 小时前
中英双语言量化交易投资源码/跟单搬砖区块链交易所源码/前端uniapp纯源码+后端
前端·uni-app·区块链·中英双语言量化交易投资源码
小成Coder5 小时前
UniApp 如何调用鸿蒙预加载
uni-app·harmonyos·鸿蒙