首页 > 其他分享 >鸿蒙首选项数据持久化

鸿蒙首选项数据持久化

时间:2024-10-10 16:33:57浏览次数:1  
标签:ets 持久 name 鸿蒙 prefMap preferencesUtil 首选项 string

1. ets/common/util/PreferencesUtils.ets

import { common } from '@kit.AbilityKit';
import { preferences } from '@kit.ArkData';

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

  /*加载首选项*/
  loadPreference(context: common.UIAbilityContext, name: string) {
    try {
      let options: preferences.Options = { name: name };
      let pref = preferences.getPreferencesSync(context, options)
      this.prefMap.set(name, pref)
    } catch (e) {
      console.error('testTag', `加载首选项${name}失败`, JSON.stringify(e))
    }
  }

  /*写入首选项*/
  putPreferences(name: string, key: string, value: string) {
    if (!this.prefMap.has(name)) {
      console.error('testTag', `首选项${name}尚未初始化1`)
      return
    }
    this.prefMap.get(name)?.putSync(key, value)
    this.prefMap.get(name)?.flush()
  }

  /*读取首选项*/
  readPreferences(name: string, key: string, defaultValue: string) {
    if (!this.prefMap.has(name)) {
      console.error('testTag', `首选项${name}尚未初始化2`)
      return ''
    }
    return this.prefMap.get(name)?.getSync(key, defaultValue)
  }
}

const preferencesUtil = new PreferencesUtil()

export default preferencesUtil as PreferencesUtil

2. entry/src/main/ets/entryability/EntryAbility.ets   onWindowStageCreate 方法添加

/*加载首选项*/
preferencesUtil.loadPreference(this.context,'myStore')

3. entry/src/main/ets/pages/Index.ets 读取首选项数据

aboutToAppear(): void {
  this.flag = String(preferencesUtil.readPreferences('myStore', 'flag', '-1'))
  console.info('testTag',this.flag)
}

 

标签:ets,持久,name,鸿蒙,prefMap,preferencesUtil,首选项,string
From: https://www.cnblogs.com/longfeiPHP/p/18456653

相关文章

  • 鸿蒙NEXT开发-沉浸式导航和键盘避让模式(基于最新api12稳定版)
    注意:博主有个鸿蒙专栏,里面从上到下有关于鸿蒙next的教学文档,大家感兴趣可以学习下如果大家觉得博主文章写的好的话,可以点下关注,博主会一直更新鸿蒙next相关知识专栏地址:https://blog.csdn.net/qq_56760790/category_12794123.html目录1.沉浸式导航1.1基本介绍1.2如......
  • 【Unity】数据持久化PlayerPrefs
    PlayerPrefs存储数据,数据为[key-value]形式可以用保存用户的设置、偏好;历史得分数据等;保存的数据位置不同的系统数据将被保存在不同的位置。Windows系统保存的数据将会被存储在系统注册表中,位置如下:(编辑器运行模式)\HKEY_CURRENT_USER\SOFTWARE\Unity\UnityEditor\DefaultCom......
  • 字节预热智能硬件 Ola Friend,预计为智能耳机;鸿蒙 NEXT 公测正式开启,微信邀请内测丨RTE
       开发者朋友们大家好: 这里是「RTE开发者日报」,每天和大家一起看新闻、聊八卦。 我们的社区编辑团队会整理分享RTE(Real-TimeEngagement)领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「有看点的会议」,但内容仅代......
  • 鸿蒙开发状态管理示例
    @ObservedclassTask{staticid:number=1/*任务序号静态属性*/name:string=`任务${Task.id++}`finished:boolean=false}/*统一样式*/@Stylesfunctioncard(){.width('95%').padding(20).backgroundColor(Color.White).borderRadius(15)......
  • 鸿蒙 Next 实战: 烟花模拟器
    前言通过上一篇文章可以看出,要在鸿蒙应用中实现特别炫的特效还是比较复杂。动画固然重要,但如果在赶工期的情况下,大家都会优先业务,那有没有简单快速的方法呢?有的,也用像Android和iOS里WebView的方式,h5的特效现在是应有尽有,把他嵌入鸿蒙Next应用里就可以,那如何在鸿蒙Next......
  • 鸿蒙开发教程实战案例源码分享-仿微信长按录音效果
    鸿蒙开发仿微信长按录音效果如果你项目有IM聊天,那么长按录音功能是必须的,最好是跟微信一样的效果,对不对。一、思路:自定义触碰事件二、效果图:鸿蒙开发教程实战案例源码分享-仿微信长按录音效果三、关键代码://联系:893151960@Entry@ComponentstructIndex{......
  • 揭秘动态化跨端框架在鸿蒙系统下的高性能解决方案
    作者:京东科技胡大海前言动态化跨端框架(后文统称“动态化”)是一个由京东金融大前端团队全自主研发的,一份代码,可以在HarmonyOS、iOS、Android、Web四端运行的跨平台解决方案。在研发团队使用后可大幅降低研发人力成本;为业务提供实时触达、A/B触达等能力以提升业务投放效率;同时......
  • 鸿蒙 Next 实战: 电子木鱼
    前言正所谓:HelloWord是程序员学任何一门语言的第一个程序实践。这其实也是一个不错的正反馈,那如何让学习鸿蒙Next更有成就感呢?下面就演示一下从零开发一个鸿蒙Next版的电子木鱼,主打就是一个抽象! 实现要点页面布局木鱼点击木鱼音效动画特效自定义弹窗 开始实......
  • 【Redis】持久化(下)-- AOF
    文章目录AOF概念如何使用AOFAOF工作流程命令写入演示文件同步策略`AOF`的重写机制概念触发重写机制`AOF`重写流程启动时数据恢复混合持久化总结AOF概念AOF持久化:以独立日志的方式记录每次的写命令,重启时再重新执行AOF文件中的命令达到恢复数据的目的.AOF的主要......
  • 鸿蒙 Next 实战: 环境搭建
    前言作为独立开发者,如果我们错过了传统移动App,和后起小程序的红利,那万物互联+AI的应用开发就得抓住了。虽然个人上架应用平台难易都差不多,但是鸿蒙生态当前正需要广大开发者参与,一旦上架,相比其他平台,流量扶持力度更大,变现能力也更容易。所以,我们可以先开发一些应用占个位置......