欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 维修 > 鸿蒙HarmonyOS之使用preferences首选项保存获取数据

鸿蒙HarmonyOS之使用preferences首选项保存获取数据

2024/10/24 14:21:00 来源:https://blog.csdn.net/qq_46269365/article/details/141646118  浏览:    关键词:鸿蒙HarmonyOS之使用preferences首选项保存获取数据

一、工具类:PreferencesUtil.ets

工具类,包括创建Preferences首选项、保存和获取对应Key的数据等方法

示例代码中以保存Token字符串值为例

import { preferences } from '@kit.ArkData';
import { GlobalContext } from './GlobalContext';
const PREFERENCES_NAME = 'currPreferences';
const KEY_APP_LOGIN_TOKEN = 'loginToken';/*** 首选项-工具类 保存应用数据*/
export class PreferencesUtil {createPreferences(context: Context) {let currPreferences: Function = (() => {return preferences.getPreferences(context, {name: PREFERENCES_NAME});})GlobalContext.getContext().setObject('getPreferences',currPreferences);}/*** 保存Token* @param token*/saveLoginToken(token: string){let currPreferences: Function = GlobalContext.getContext().getObject('getPreferences') as Function;currPreferences().then((preferences: preferences.Preferences) => {preferences.put(KEY_APP_LOGIN_TOKEN, token);preferences.flush();});}/*** 获取Token* @returns*/async getLoginToken(){let currPreferences: Function = GlobalContext.getContext().getObject('getPreferences') as Function;let token: string = await (await currPreferences()).get(KEY_APP_LOGIN_TOKEN, '');return token;}
}export default new PreferencesUtil();

二、使用

1、EntryAbility.ets中的onCreate()方法中调用相应方法创建首选项示例

export default class EntryAbility extends UIAbility {onCreate(want: Want, launchParam: AbilityConstant.LaunchParam) {hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate');//添加以下方法调用代码GlobalContext.getContext().setObject('abilityWant', want);PreferencesUtil.createPreferences(this.context);}...}

2、保存Token值

直接调用工具类的方法

PreferencesUtil.saveLoginToken('xxx');

3、获取保存的Token值

PreferencesUtil.getLoginToken().then((value) => {//value就是获取到的值});

三、完成,Nice!

如有错误,欢迎指正!

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com