HarmonyOS 鸿蒙Next AppStorage缓存的数据重启后无法读取

发布于 1周前 作者 yibo5220 来自 鸿蒙OS

HarmonyOS 鸿蒙Next AppStorage缓存的数据重启后无法读取

PersistentStorage.persistProp(‘token’, ‘’) @Entry @Component struct efg { @StorageLink(‘token’) token: string = ‘’ build() { Navigation() { Column() { Button(‘缓存’).onClick(() => { let token = ‘abc123456’ console.info(‘登录成功 存本地的 token:’ + token) AppStorage.setOrCreate(‘token’,token) }) } }.title(‘标题’) } }

重启后在其他页面AppStorage.get()获取不到数据, 返回是undefined

cke_2553.png


更多关于HarmonyOS 鸿蒙Next AppStorage缓存的数据重启后无法读取的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

5 回复

export class StorageKey<T> { level: StorageLevel key: string

constructor(key: string, level: StorageLevel = ‘persistent’) { this.level = level this.key = sport_${key}_key } }

// [DEPRESSED] 不支持对象嵌套, 复杂类型统一转 json export function getStorageSync<T extends Object>(key: StorageKey<T>): T | null | undefined { switch (key.level) { case ‘local’: return LocalStorage.getShared().get(key.key) case ‘app’: return AppStorage.get(key.key) case ‘persistent’: return AppStorage.get(key.key) } }

// [DEPRESSED] 不支持对象嵌套, 复杂类型统一转 json export function setStorageSync<T extends Object>(key: StorageKey<T>, value: T | null | undefined) { switch (key.level) { case ‘local’: if (isEmpty(value)) { LocalStorage.getShared().delete(key.key) } else { LocalStorage.getShared().setOrCreate(key.key, value) } case ‘app’: if (isEmpty(value)) { AppStorage.delete(key.key) } else { AppStorage.setOrCreate(key.key, value) } case ‘persistent’: if (isEmpty(value)) { PersistentStorage.deleteProp(key.key) AppStorage.delete(key.key) } else { PersistentStorage.persistProp(key.key, value) AppStorage.setOrCreate(key.key, value) } } }


我封的代码段,模拟器实测正常,建议干掉 storageLink 注解再试下。

更多关于HarmonyOS 鸿蒙Next AppStorage缓存的数据重启后无法读取的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


AppStorage数据存内存的,和应用进程绑定的,重启之后,数据就会没了,如果想存储,可以存到首选项中

cke_140.png

是有勾选的

模拟器勾选保存数据了吗

针对帖子标题“HarmonyOS 鸿蒙Next AppStorage缓存的数据重启后无法读取”的问题,以下提供可能的解决方案:

HarmonyOS中,如果AppStorage缓存的数据在设备重启后无法读取,可能是由于数据保存机制或权限设置不当导致的。首先,请确认AppStorage的使用方式是否正确。在HarmonyOS中,AppStorage提供了持久化存储的能力,但需要确保在保存数据时使用了正确的API,并且数据确实被成功写入。

其次,检查应用是否有足够的权限去访问和修改存储数据。在某些情况下,权限设置不当可能导致数据无法正确读取。

此外,还需要考虑是否存在数据损坏或存储异常的情况。如果存储介质出现问题,可能会导致数据丢失或损坏,进而影响数据的读取。

如果以上步骤都无法解决问题,可能需要进一步检查应用的代码逻辑,特别是与数据存储和读取相关的部分。确认在设备重启后,应用是否正确尝试读取之前保存的数据,并且使用了正确的路径和方式。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html 。他们将提供更专业的技术支持和解决方案。

回到顶部