沈阳网站公司哪个好,外贸采购网官网,官方网站在哪里,虚拟机做网站服务Preferences 数据持久化存储
用户首选项#xff08;Preferences#xff09;
1. 封装 仓库工具类
● 这里可以选择将 数据字段 key 抽取为一个静态方法#xff0c;这里选择让用户传参#xff0c;看起来较容易理解#xff01;
/*** 首选项 preferences - 实现数据持久化…Preferences 数据持久化存储
用户首选项Preferences
1. 封装 仓库工具类
● 这里可以选择将 数据字段 key 抽取为一个静态方法这里选择让用户传参看起来较容易理解
/*** 首选项 preferences - 实现数据持久化存储*/
import { preferences } from kit.ArkData
export class PreferencesClass {// 上下文(在【EntryAbility中获取使用 this.context】, 【除此之外使用 getContext() 获取】)static context: Context// 获取创库static getStoreInstance() {return preferences.getPreferencesSync(PreferencesClass.context || getContext(), {name: Token_Key})}/*** 设置仓库数据* param key数据在仓库的字段名* param token需要存储或者修改的 数据 value 值*/static async setData(key: string, token: string) {const store PreferencesClass.getStoreInstance()store.putSync(key, token) // 设置字段key 和 valueawait store.flush()}/*** 获取仓库数据* paramkey 数据所对应的字段 key* returns 筛选仓库存在将数据给用户不存在则默认为空字符串*/static getData(key: string) {return PreferencesClass.getStoreInstance().getSync(key, )}/*** 删除数据* param key 参数为需要删除的数据字段名*/static async removeData(key: string) {const storeInstance PreferencesClass.getStoreInstance()storeInstance.deleteSync(key)await storeInstance.flush()}
}2. token的存储鉴权
这里判断用户是否存在token 权限实现用户进应用是去login还是home页面。
let page: string // 获取上下文PreferencesClass.context this.context// 在窗口模型创建完毕加载数据内容页面之前获取token校验去向if ( PreferencesClass.getData(token) ) {// 没登录状态去登录页面page pages/Login} else {// 仓库有token 数据就直接去首页page pages/Home}windowStage.loadContent(page, (err) {});
}3. 对仓库中的 数据 进行操作
我们只需要调用工具类中的方法即可实现操作 需要注意的是每次使用要保证传入当前的上下文哦操作方法直接调用静态属性赋值即可。这里我在Ability配置了所以全局共享了
// 设置为空相当于删除token了
PreferencesClass.setData(token, )
// 调用方法传入字段名实现删除
PreferencesClass.removeData(token)