HarmonyOS 清除app缓存?

如题:HarmonyOS 清除app缓存?

阅读 521
1 个回答
  1. 当前没有清除缓存的接口,推荐下面:

查询缓存用storageStatistics.getCurrentBundleStats()接口。清除文件缓存,需要调用context的cacheDir获取缓存,然后调用系统文件fs接口,判断是文件或者文件夹,再分别消除缓存。 详细用法见下面的链接:

查询:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-file-storage-statistics-V5

function clearCache(context:common.UIAbilityContext) {
  let cacheDir = context.cacheDir
  fs.listFile(cacheDir).then((filenames) => {
    for (let i = 0;i < filenames.length; i++) {
      let dirPath =cacheDir+filenames[i] // 判断是否文件夹
      let isDirectory:boolean = false
      try {
        isDirectory = fs.statSync(dirPath).isDirectory()
      } catch (e) {
        console.log(e)
      }
      if (isDirectory) {
        fs.rmdirSync(dirPath)
      } else {
        fs.unlink(dirPath).then(() => {
          console.info('remove file succeed');
        }).catch((err:BusinessError) => {
          console.info("remove file failed with error message: " + err.message + ", error code: " + err.code);
        });
      }
    }
  })
}
  1. 清除不了的数据可能包括首选项和web 首选项和Web组件里的缓存,首选项清除请参考:

https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-data-preferences-V5\#clear

首选项清除操作中,请根据自己的需要使用delete或者clear,具体如下

delete:从缓存的Preferences实例中删除名为给定Key的存储键值对,可通过flush将Preferences实例持久化,使用callback异步回调

clear:清除缓存的Preferences实例中的所有数据,可通过flush将Preferences实例持久化,使用callback异步回调

web清除缓存请参考:

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/web-cookie-and-data-storage-mgmt-V5

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
logo
HarmonyOS
子站问答
访问
宣传栏