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

news/2024/7/21 12:02:33 标签: harmonyos, 笔记, 华为

相关api

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

preferencesUtils.ts


import preferences from '@ohos.data.preferences';

const STORE_NAME = "baseInfo"

let context = getContext(this)
let preference: preferences.Preferences

class PreferenceUtil {
  // 初始化对象
  async getPreferences() {
    try {
      preference = await preferences.getPreferences(context, STORE_NAME)
    }
    catch (err) {
      console.error(`error:${err}`)
    }
  }

  /**
   * 删除所有的preferences对象
   */
  async deletePreferences() {
    try {
      await preferences.deletePreferences(context, STORE_NAME);
    } catch(err) {
      console.error('TAG', `Failed to delete preferences, Cause: ${err}`);
    };
  }

  // 写入preference数据
  async putPreference(key: string, value: string) {
    if (!key || !value) {
      return
    }

    if (!preference) {
      await this.getPreferences();
    }
    // 将数据保存到首选项,内存中
    try {
      await preference.put(key, value);
    } catch (err) {
      console.error('TAG', `Failed to put value, Cause: ${err}`);
    }
    // 【数据持久化,写入文件】Store the Preference instance in the preference persistence file
    await preference.flush();
  }

  /**
   * 获取preference对象
   */
  async getPreference(key: string) {
    if (!key) {
      return
    }

    let value: number | string | boolean | Array<number> | Array<string> | Array<boolean>;
    if (!preference) {
      await this.getPreferences();
    }
    try {
      value = await preference.get(key, '')
    } catch (err) {
      console.error('TAG', `Failed to get value, Cause: ${err}`)
    }

    if (value === '') {
      return
    }

    return value;
  }
}

export default new PreferenceUtil();

页面调用

import userInfoStrong from '../../utils/preferencesUtils';
// 存
userInfoStrong.putPreference('userInfo', JSON.stringify(userInfo))
// 异步获取保存的数据
userInfoStrong.getPreference('userInfo').then((res: any) => {
   console.log(res, 111111111111111111111)
})

http://www.niftyadmin.cn/n/5408416.html

相关文章

数位dp 笔记

小技巧1:求区间[X, Y]可以转换为求F(Y) - F(X-1) F(X)表示0~X中满足条件的数字个数 小技巧2&#xff1a;可以用树的形式来看 遍历最高位&#xff0c;每一位分为两种情况&#xff1a;未达到上界和达到上界 如果走到右边最底端需加1 度的数量 求给定区间 [X,Y]中满足下列条件的…

95.Go设计优雅的错误处理(带堆栈信息)

在之前的两篇文章中&#xff0c;我们已经介绍过错误的一些优雅处理 75.错误码设计、实现统一异常处理和封装统一返回结果 88.Go设计优雅的错误处理 本文想继续写一篇&#xff0c;可以作为工具包直接使用。也是记录一种新的思路和编码技巧&#xff0c;同时创建错误的时候会自动…

PostgreSQL教程(二十一):服务器管理(三)之服务器设置和操作

本章讨论如何设置和运行数据库服务器&#xff0c;以及它与操作系统的交互。 一、PostgreSQL用户账户 和对外部世界可访问的任何服务器守护进程一样&#xff0c;我们也建议在一个独立的用户账户下运行PostgreSQL。这个用户账户应该只拥有被该服务器管理的数据&#xff0c;并且…

STM32(16)使用串口向电脑发送数据

发送字节 发送数组 发送字符和字符串 字符&#xff1a; 字符串&#xff1a; 字符串在电脑中以字符数组的形式存储

基于springboot+vue的酒店管理系统

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…

python中.txt文件的使用【txt读取和写入】

读取txt的数据和把数据保存到txt中是python处理数据常用的。将学习笔记记录&#xff0c;作备份和参考。十分感谢别人的分享&#xff0c;很详细&#xff0c;学习参考链接如下&#xff1a; pythonPython读写txt文本文件的操作方法全解析教你利用python如何读取txt中的数据 一、…

区块链技术深度赋能多元行业应用的全景解析

随着科技的日新月异&#xff0c;区块链这一颠覆性技术正以前所未有的速度从理论走向实践&#xff0c;并在众多行业中扮演着关键性的变革角色。其独特的分布式账本、去中心化运作、公开透明以及数据不可篡改等核心特性&#xff0c;为金融、物联网&#xff08;IoT&#xff09;、供…

venv、pip、conda、anaconda、miniconda的区别和优缺点,和彻底清除python多余的环境

virtualenv(venv) 这是一个虚拟环境管理器&#xff0c;它可以让你每个项目甚至每个脚本配置一个自定义的Python解释器环境&#xff0c;这最大的好处是我可以不污染开发环境。​ pip pip 是 Python 最常用的包管理器&#xff0c;它能自动处理依赖 。 conda 如果说venv是虚拟…