修复 Issue #3 的登录态不持久化部分(时区部分由 PR #3 处理)。
原实现把用户信息存在 LocalStorage.getShared(),这是 windowStage 级内存,App 进程重启即丢失,每次冷启动都需重新登录。
LocalStorage.getShared()
EntryAbility.ets
@kit.ArkData
preferences
currentUser
word_user_store
Login
Home
Flashcard
Quiz
getUserInfo()
getUserId()
setUserInfo()
clearUserInfo()
onWindowStageCreate
await
pages/Home
pages/Login
hvigorw assembleHap --mode module -p module=entry -p product=default -p buildMode=debug
说明:验证环境 SDK 为 HarmonyOS 26.0.0,为适配当前 IDE 临时移除了 build-profile.json5 的 compileSdkVersion(24)字段进行编译;该临时改动未包含在本 PR,工程原配置保持不变。所用 preferences API 在 API 24 同样可用。
build-profile.json5
compileSdkVersion
harmony_app/entry/src/main/ets/entryability/EntryAbility.ets
Refs #3
变更说明
修复 Issue #3 的登录态不持久化部分(时区部分由 PR #3 处理)。
原实现把用户信息存在
LocalStorage.getShared(),这是 windowStage 级内存,App 进程重启即丢失,每次冷启动都需重新登录。变更内容(仅
EntryAbility.ets)@kit.ArkData的preferences将用户信息持久化到本地(键currentUser,库名word_user_store);Login/Home/Flashcard/Quiz)无需改动:getUserInfo()/getUserId()→ 读缓存setUserInfo()/clearUserInfo()→ 更新缓存并异步落盘onWindowStageCreate先await恢复持久化会话,再按登录态选择首屏:pages/Homepages/Login验证
影响范围
harmony_app/entry/src/main/ets/entryability/EntryAbility.etsRefs #3