鸿蒙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!

如有错误,欢迎指正!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值