用户首选项

import preferences from '@ohos.data.preferences'; //导包
//用户首选项
export class PreferencesUtil{

  prefMap:Map<string,preferences.Preferences>=new Map()

  async loadPreference(context,name:string){  //定义一个方法来加载这个实例    async是一个关键字,定义一个异部函数
    //第一种方法
    // preferences.getPreferences(context,name)  //用这种方法来获取是一个将来的结果,要判断是否成功获取
    //   .then(pref=>{
    //     this.prefMap.set(name,pref)  //成功
    //     console.log('testTag',`加载Preferences[${name}成功]`)
    //   })
    //   .catch(reason=>{
    //     console.log('testTag',`加载Preferences[${name}失败]`,JSON.stringify(reason))    //失败
    //   })
    //第二种方法
    try {
      let prefMap  =await  preferences.getPreferences(context,name)
      this.prefMap.set(name,prefMap)
      console.log('testTag',`加载Preferences[${name}成功]`)
    }catch (e){
      console.log('testTag',`加载Preferences[${name}失败]`,JSON.stringify(e))
    }


  }
  async putPreferenceValue(name:string,key:string,value:preferences.ValueType){

    if (!this.prefMap.has(name)) {
      console.log('testTag',`Preferences[${name}尚未初始化]`)
      return
    }
    try {
      //增加数据
      let pref=this.prefMap.get(name)  //获取
      await pref.put(key,value)   //写入数据
      await pref.flush()   //刷盘
      console.log('testTag',`保存Preferences[${name}.${key}=${value}成功]`)
    }catch (e){
      console.log('testTag',`保存Preferences[${name}.${key}=${value}失败]`,JSON.stringify(e))
    }
  }




    async  getPreferenceValue(name:string,key:string,defaultValue:preferences.ValueType){
    if (!this.prefMap.has(name)){
      console.log('testTag',`Preferences[${name}尚未初始化]`)
      return
    }
    try {
      let pref=this.prefMap.get(name)
      let value=await pref.get(key,defaultValue)  //读取
      console.log('testTag',`读取Preferences[${name}.${key}=${value}成功]`)
      return value
    }catch (e){
      console.log('testTag',`读取Preferences[${name}.${key}]`,JSON.stringify(e))
    }
  }





}
const preferencesUtil=new PreferencesUtil()  //定义一个常量preferencesUtil,把PreferencesUtil()赋值给preferencesUtil,是属于初始化

export default preferencesUtil as PreferencesUtil   //默认导出
  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值