uniapp 實現APP設定獲取快取清理快取
阿新 • • 發佈:2021-02-06
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();
});
}
}
}
}
注意事項 需要真機測試才能生效