美文网首页
鸿蒙本地数据持久化

鸿蒙本地数据持久化

作者: _菩提本无树_ | 来源:发表于2024-06-06 14:34 被阅读0次
/*
 * 数据持久化
 * */
class PreferencesUtil{
  prefMap: Map<string, preferences.Preferences> = new Map()
  async loadPreference(context, name: string){
    try {
      // 加载preferences
      let pref = await preferences.getPreferences(context, name)
      this.prefMap.set(name, pref)
      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()
export default preferencesUtil as PreferencesUtil

import preferencesUtil from '../Common/utils'

方法引用
await preferencesUtil.loadPreference(this.context, "club")
let firstInstall: string = await preferencesUtil.getPreferenceValue("club","firstInstall","0") as string

注意如果每次读取的都是默认值看一下是否设置了运行时保留App数据,见下图

截屏2024-06-12 15.47.48.png 截屏2024-06-07 14.34.01.png

相关文章

  • iOS本地数据持久化

    iOS本地数据持久化 iOS本地数据持久化

  • iOS本地数据持久化

    转载自:CocoaChina - iOS本地数据持久化 本文内容:iOS本地数据持久化的几种类型iOS本地数据持久...

  • iOS本地数据持久化

    本文内容: iOS本地数据持久化的几种类型 iOS本地数据持久化几种类型的应用场景及使用 一.iOS本地数据持久化...

  • iOS 数据持久化

    iOS本地数据持久化 本文内容:iOS本地数据持久化的几种类型iOS本地数据持久化几种类型的应用场景及使用 一.i...

  • iOS本地数据持久化

    本文内容:iOS本地数据持久化的几种类型iOS本地数据持久化几种类型的应用场景及使用 一,iOS本地数据持久化的类...

  • ios数据持久化

    本文内容:iOS本地数据持久化的几种类型iOS本地数据持久化几种类型的应用场景及使用 一.iOS本地数据持久化的类...

  • GeekBand iOS开发高级进阶学习笔记(第四周)

    简易数据存储 数据持久化分为本体持久化和云端持久化本体持久化可以存在本地文件或数据库。云端可以存在iCloud,存...

  • iOS 数据本地化(开篇)

    iOS Application的文件目录: 何为数据本地化? 数据本地化:又名持久化,存储在磁盘本地当中。 为何要...

  • Android数据持久化之数据库的使用

    android开发中数据持久化 轻量级数据持久化一般使用sp,大量数据的持久化就必须考虑使用本地数据库了 Andr...

  • iOS本地数据持久化

    iOS本地数据持久化的几种类型以及这几种类型的应用场景及作用 iOS本地数据持久化的几种类型:1、NSUserDe...

网友评论

      本文标题:鸿蒙本地数据持久化

      本文链接:https://www.haomeiwen.com/subject/ssipqjtx.html