新闻| 文章| 资讯| 行情| 企业| wap手机版| article文章| 首页|会员中心|保存桌面|手机浏览
普通会员

易达信息科技

企业列表
新闻列表
推荐企业新闻
联系方式
  • 联系人:依依
友情链接
  • 暂无链接
首页 > 新闻中心 > 鸿蒙ets开发App,开屏页,数据保存,隐私协议弹窗,广告页
新闻中心
鸿蒙ets开发App,开屏页,数据保存,隐私协议弹窗,广告页
发布时间:2024-12-13        浏览次数:6        返回列表
 
 
 
 
 

转载来源

鸿蒙ets开发App,开屏页,数据保存,隐私协议弹窗,广告页

一、介绍 Preferences 首选项为应用提供Key-Value键值型的数据处理能力,支持应用持久化轻量级数据,并对其修改和查询。

数据存储形式为键值对,键的类型为字符串型,值的存储数据类型包括数字型、字符型、布尔型以及这3种类型的数组类型。具体参考官网。

二、使用 1、导入模块 import DataPreferences from ‘@ohos.data.preferences’; 2、获取实例

let preferences = DataPreferences.getPreferences(context, name); preferences .then((res) => { //res 就是返回的实例 }) .catch(reason => { Logger.error(this.TAG, ‘获取Preferences实例失败’); }) });```

getPreferences 方法是一个异步调用过程,返回的是Promise对象,实际需要使用then语句进行回调处理,入参context是上下文环境,name是配置文件的名称

3、写入数据 let preferences = DataPreferences.getPreferences(this.context, name); preferences.then((res) => { res.put(IS_PRIVACY, true).then(() => { res.flush(); Logger.info(‘PutData’,‘isPrivacy is put success’); }).catch((err) => { Logger.info(‘PutData’,‘isPrivacy put failed. Cause:’ + err); }); })

在获取到实例后,使用put方法进行数据写入,这里写入一个boolean 值,key名称为IS_PRIVACY,put完成后,需要调用flush方法,将数据实际的写入到文件中。

4、读取数据 let preferences = DataPreferences.getPreferences(this.context, name); preferences.then((res) => { res.get(IS_PRIVACY, false).then((isPrivate) => { Logger.info(‘GetData’,‘isPrivacy is get success, isPrivate:’ + isPrivate); }); }); 三、简单封装 1、封装 实际项目使用中,每次需要导入**@ohos.data.preferences**模块,获取实例,判断实例获取成功后,再进行数据的写入或者读取,这样稍微繁琐了点,这里对preferences 进行一个简单的封装,也方便管理preferences,后续替换底层实现也会少一些工作投入。

这里我们定义一个工具类 PreferencesUtils.ts,

import DataPreferences from ‘@ohos.data.preferences’; import { Logger } from ‘https://blog.csdn.net/weixin_43807186/article/details/log/Logger’;

export class PreferencesUtils { private static readonly TAG = ‘PreferencesUtils’;

private constructor() { }

public static getPreferences(context: Context, name: string): Promise<DataPreferences.Preferences> {

 

} }

封装了获取实例的方法,增加了获取失败的日志统一输出,其他的写入,读取方法也可以这里定义方法封装,这里就不多讲了,直接使用即可。

2、封装使用 import { PreferencesUtils } from ‘@ohos/xxxLibrary/src/main/ets/common/utils/PreferencesUtils’

@Entry @Component struct DemoPage { @State message: string = ‘Hello World’ context = getContext(this) as common.UIAbilityContext

build() { … }

aboutToAppear() { PreferencesUtils .getPreferences(this.context, ‘store’) .then((preferences) => { preferences.get(‘key_is_privacy’, false).then((isPrivacy) => { //… }); } }

3、异步转同步调用 上述方法使用的是异步获取的方式,如果需要同步获取,可以使用await关键字将Promise转成同步,使用async配合修饰方法搭配使用。

具体如下

import { PreferencesUtils } from ‘@ohos/xxxLibrary/src/main/ets/common/utils/PreferencesUtils’

@Entry @Component struct DemoPage { @State message: string = ‘Hello World’ context = getContext(this) as common.UIAbilityContext

build() { … }

async aboutToAppear() {

 

}

} ———————————————— 轻量级缓存框架Preferences使用 版权声明:本文为CSDN博主「小枫_S」的原创文章,遵循CC 4.0 BY-SA版权协议, 原文链接:https://blog.csdn.net/q919233914/article/details/130262104 ————————————————