当前位置: 首页 > news >正文

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

如有错误,欢迎指正!


http://www.mrgr.cn/news/15433.html

相关文章:

  • 三行五行的 SQL 只存在于教科书和培训班
  • STL容器中 list(双向链表)的增删改查
  • 什么是跨域问题?出现的原因和解决方法是什么?
  • 记录一次两台虚拟机Oracle rac 心跳不能建立的排查
  • 【对象存储】MINIO_RELEASE.2024-08-17T01-24-54Z-cpuv1部署与操作
  • 2024.8.26 Python,最大子数和与动态规划,最小路径和,分割回文串,字典序排数,最长重复子数组(动态规划)
  • 斯坦福大学cs231n (图像分类)
  • Android如何高效的加载大型位图
  • 【JVM】执行引擎、JIT、逃逸分析(二)
  • MVC与设计模式理解-lnmp学习之路
  • 如何使用python抓包,附代码
  • 虚拟机Linux(Centos7)系统静态IP设置
  • java 使用intern()性能对比
  • 贪心算法---划分字母区间
  • mysql集群从零开始搭建
  • 怎么解决 hash 碰撞,用 C++ 实现 hashMap?
  • Docker原理及实例
  • 计算机毕业设计选题推荐-医院门诊预约-医院预约挂号微信小程序/安卓APP-项目实战
  • linux:网络编程之TCP
  • day02 1.c++对c的扩充