【HarmonyOS Arkts笔记】@ohos.data.preferences用户首选项实现存储信息

本文介绍了Ohos框架中的PreferencesAPI,它支持应用存储和管理Key-Value形式的轻量级数据,包括数据的读写、初始化、删除和持久化。示例展示了如何使用putPreference和getPreference方法进行数据操作。

相关api

  • 用户首选项: 用户首选项为应用提供Key-Value键值型的数据处理能力,支持应用持久化轻量级数据,并对其修改和查询。
    数据存储形式为键值对,键的类型为字符串型,值的存储数据类型包括数字型、字符型、布尔型以及这3种类型的数组类型。

preferencesUtils.ts

import { preferences } from '@kit.ArkData';
import { BusinessError } from '@kit.BasicServicesKit';

let dataPreferences: preferences.Preferences | null = null;

const PreferenceUtil = {
  /*
  * 创建preference
   * */
  createPreferences() {
    preferences.getPreferences(this.context, 'myStore', (err: BusinessError, val: preferences.Preferences) => {
      if (err) {
        console.error("Failed to get preferences. code =" + err.code + ", message =" + err.message);
        return;
      }
      dataPreferences =  val;
      console.info("Succeeded in getting preferences.");
    })
  },
  /**
   * 获取preference对象
   */
  async getPreference(key: string) {
    if (!key) {
      return
    }
    if (!dataPreferences) {
      await PreferenceUtil.createPreferences();
    }

    await dataPreferences.get(key, '', (err: BusinessError, val: preferences.ValueType) => {
      if (err) {
        console.error("Failed to get value" + err.code + ", message =" + err.message);
        return;
      }
      console.log("Succeeded in getting value: " + val);
      return val;
    })
  },
  /**
   * 写入preference数据
   */
  async putPreference(key: string, val: string) {
    if (!key || !val) {
      return
    }
    if (!dataPreferences) {
      await PreferenceUtil.createPreferences();
    }

    await dataPreferences.put(key, val, async (err: BusinessError) => {
      if (err) {
        console.error("Failed to put value:" + err.code + ", message =" + err.message);
        return;
      }
      console.info("Succeeded in putting value: " + val);
      // 【数据持久化,写入文件】Store the Preference instance in the preference persistence file
      await dataPreferences.flush();
    })
  },
  /**
   * 删除preference数据
   */
  async delPreference(key: string) {
    if (!key) {
      return
    }
    if (!dataPreferences) {
      await PreferenceUtil.createPreferences();
    }
    await dataPreferences.delete(key, (err: BusinessError) => {
      if (err) {
        console.error("Failed to delete the key 'startup'. code =" + err.code + ", message =" + err.message);
        return;
      }
      console.info("Succeeded in deleting");
    })
  }
}

export default PreferenceUtil;

页面调用

import PreferenceUtil from '../../utils/preferencesUtils';

PreferenceUtil.putPreference('token', token)
PreferenceUtil.getPreference('token')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值