合作咨询
我们的专家服务团队将竭诚为您提供专业的合作咨询服务
import { preferences } from '@kit.ArkData';
import common from '@ohos.app.ability.common';
class Store {
private dataPreferences: preferences.Preferences | null = null;
private context: common.UIAbilityContext | null = null;
/** 初始化 */
init(context: common.UIAbilityContext) {
this.context = context
preferences.getPreferences(context, 'myStore', (err: BusinessError, obj: preferences.Preferences) => {
if (err === undefined) {
console.log('初始化成功')
this.dataPreferences = obj
} else {
this.dataPreferences = null
console.log('失败原因:', err.message)
}
});
}
/** 设置token */
setToken(token: string) {
console.log('设置token', token);
this.dataPreferences?.put('token', token, (err: BusinessError) => {
if (err === undefined) {
console.log('写入成功')
this.flushToken()
} else {
this.setToken(token)
}
})
}
/** 持久化token */
flushToken() {
this.dataPreferences?.flush((flushErr: BusinessError) => {
if (flushErr === undefined) {
console.log('持久化成功')
} else {
console.log('持久化失败:', flushErr.message)
this.flushToken()
}
})
}
/** 获取token */
getToken(): string {
try {
return this.dataPreferences?.getSync('token', '') as string
} catch (err) {
return ''
}
}
/** 清除token */
removeToken() {
this.dataPreferences?.delete('token', (err: BusinessError) => {
if (err === undefined) {
console.log('删除成功')
this.flushToken()
} else {
this.removeToken()
}
})
}
}
export default new Store()
在EntryAbility中初始化,在其它页面使用set和get方法均成功,但是重启应用后数据就没有了,使用的是模拟器(Mate 80 Pro Max)我要提问题