Preference通用工具类

import preferences from '@ohos.data.preferences';
import Package from '@system.package';

// 通用工具类
class PreferencesUtil {
  
  prefMap: Map<string, preferences.Preferences> = new Map()

  //   1.加载preference实例


  async loadPreference(context, name: string) {  
    try {
      let pref = await preferences.getPreferences(context, name)
      this.prefMap.set(name, pref)
      console.log(`加载Preferences[${name}]成功`)
    } catch (e) {
      console.log(`加载Preferences[${name}]失败`, JSON.stringify(e))
    }
  }
  //   2.进行增删改查数据操作
  //   2.1  新增数据

  // 异步处理,同步调用
  async putPreferenceValue(name: string, key: string, value: preferences.ValueType) {
    //   从preference实例中取值
    if (!this.prefMap.has(name)) {
      // 未初始化也就是未赋值,说明没有该首选项
      console.log(`Preferences[${name}]尚未初始化}`)
    }
    else {
      try {
        let pref = this.prefMap.get(name)
        //   写数据
        await pref.put(key, value)
        //   刷盘
        await pref.flush()
        console.log(`保存Preferences[${name}.${key} = ${value}]成功`)
      }
      catch (e) {
        console.log(`保存Preferences[${name}.${key} = ${value}]失败`, JSON.stringify(e))
      }
    }
  }

  //   2.2  读取数据
  async getPreferenceValue(name: string, key: string, defaultValue: preferences.ValueType) {
    if (!this.prefMap.has(name)) {
      console.log(`Prefernces[${name}]尚未初始化`)
    }
    else {
      try {
        let pref = this.prefMap.get(key)
        //   读取数据
        // value 用Promise封装,await自动封装
        let value = await pref.get(key, defaultValue)
        console.log(`读取Preferences[${name}.${key} = ${value}]成功`)
        return value
      } catch (e) {
        console.log(`读取Preferences[${name}.${key}]失败`, JSON.stringify(e))
      }
    }
  }

  //  2.3   删除数据
  async deletePreferenceValue(name: string, key: string) {
    if (!this.prefMap.has(name)) {
      console.log(`Prefernces[${name}]尚未初始化`)
    }
    else {
      try {
        let deleteValue = this.prefMap.delete(key)
        console.log(`删除Preferences[${name}.${key} = ${deleteValue}]成功`)
      } catch (e) {
        console.log(`删除Preferences[${name}.${key}]失败`, JSON.stringify(e))
      }
    }
  }
}

let preferencesUtil = new PreferencesUtil()

export default preferencesUtil as PreferencesUtil

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值