HarmonyOS 鸿蒙Next PersistentStorage存储问题
HarmonyOS 鸿蒙Next PersistentStorage存储问题
- //持久化存储登录状态
PersistentStorage.persistProp(Constant.loginStatus, false)
- 登录成功, 保存登录状态
AppStorage.setOrCreate(Constant.loginStatus, true)
-
杀掉App
-
重新启动App, AppStorage中保存的登录状态会丢失(偶现)
你看看你这边步骤是不是有问题,我这边正常
import router from '@ohos.router';
PersistentStorage.persistProp('token', '')
@Entry
@Component
struct Index {
@State message: string = '这是登录页';
@StorageLink('token') token: string = ''
onPageShow() {
if (this.token.length > 0 && this.token !== "undefined") {
console.log('登录页 onPageShow token有值 说明之前 有登录过 直接跳转到首页' + this.token)
this.goToHome()
} else {
console.log('登录页 onPageShow token没值 说明之前 没登录过')
}
}
build() {
Stack() {
Text(this.message + this.token).fontSize(50).fontWeight(FontWeight.Bold).margin({ top: 200 })
Button()
.type(ButtonType.Capsule)
.width('100%')
.height('50')
.border({ color: '#CCCCCC', width: 1 })
.margin({ top: 500 })
Row() {
Text("手机号登录").fontSize(18).fontColor('#333333')
Text('(上次登录)').fontSize(14).fontColor('#C0C0C0')
}
.width('100%')
.height('100%')
.justifyContent(FlexAlign.Center)
.onClick(() => {
this.mobilePhoneLoginClick()
})
.margin({
top: 500
})
}
.width('100%')
.height('50')
}
mobilePhoneLoginClick() {
console.info('手机号登录 点击')
this.loginSuccess()
}
loginSuccess() {
let token = 'abc123456'
console.info('登录成功 存本地的 token:' + token)
AppStorage.setOrCreate('token', token)
this.goToHome()
}
goToHome() {
console.info('跳转到 首页')
router.pushUrl({ url: 'pages/Home' })
}
}
// 跳转Home页
@Entry
@Component
struct Home {
@State message: string = '这是首页';
@State token: string = ''
onPageShow() {
this.token = AppStorage.get('token') + ''
console.info('首页 取存在本地的 temp:' + this.token)
}
build() {
Row() {
Column() {
Text(this.message + this.token).fontSize(50).fontWeight(FontWeight.Bold)
}.width('100%')
}.height('100%')
}
}
更多关于HarmonyOS 鸿蒙Next PersistentStorage存储问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
针对HarmonyOS(鸿蒙)Next PersistentStorage存储问题,以下是一些可能的解决方案和考虑因素:
HarmonyOS的PersistentStorage提供了持久化存储的能力,如果在使用过程中遇到问题,首先确认以下几点:
-
权限检查:确保应用已经正确申请并获得了存储相关的权限。鸿蒙系统对于应用访问存储有严格的管理机制,未授权的应用可能无法正常访问PersistentStorage。
-
存储路径:检查存储路径是否正确。错误的路径可能导致数据无法正确读写。确认存储位置符合鸿蒙系统的存储规范。
-
数据格式:确保存储和读取的数据格式一致。如果存储时采用了某种序列化方式,读取时也必须采用相同的方式,否则可能导致数据解析错误。
-
存储大小:检查存储的数据量是否超过了PersistentStorage的限制。鸿蒙系统可能对单个存储项的大小有限制,超出限制的数据可能无法正常存储。
-
系统更新:确认鸿蒙系统版本是否为最新,因为存储相关的bug可能在新版本中已经被修复。
-
日志分析:查看系统日志,分析是否有与PersistentStorage相关的错误信息,这有助于定位问题。
如果以上方法均未能解决问题,可能是系统或硬件层面的异常。此时,建议联系鸿蒙系统的官方客服以获取更专业的支持。官网客服地址是:https://www.itying.com/category-93-b0.html