1. 程式人生 > 其它 >uniapp 實現APP設定獲取快取清理快取

uniapp 實現APP設定獲取快取清理快取

技術標籤:uniapp快取app

uniapp 實現APP設定獲取快取清理快取

公司需要開發一款app 功能有在設定裡顯示快取 以及清理快取功能
實現方式 如下
頁面效果如下
在這裡插入圖片描述

獲取本機快取

<view class="iconItem" @click="clern">
			<view class="register">
				<u-icon color='#EBB24C' name="trash"></u-icon>清除快取
			</view>
			<
view class="iconJt phone"> {{fileSizeString}} <u-icon name="arrow-right" color="#ccc" size="28"></u-icon> </view> </view>
export default {
		data() {
			return {
				fileSizeString: ''
			};
		},
		created() {
			this.formatSize
() }, methods: { // 獲取快取 formatSize() { let that = this; 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"; } }); }, // 清除快取 clern() { let that = this uni.showModal({ title: '清除快取', content: '您確定要清除快取嗎?', success: function(res) { if (res.confirm) { console.log('使用者點選確定'); that.clearCache() // uni.clearStorage(); uni.navigateTo({ url: '../../login/loginW' }) } else if (res.cancel) { console.log('使用者點選取消'); } } }); }, // 清理快取 clearCache() { 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(); }); } } } }

注意事項 需要真機測試才能生效