HarmonyOS 鸿蒙Next中UIAbility初始化dataPreferences from '@ohos.data.preferences'
HarmonyOS 鸿蒙Next中UIAbility初始化dataPreferences from ‘@ohos.data.preferences’
在windowStage.loadContent之前初始化会报错,而放到后面就正常?
async onWindowStageCreate(windowStage: window.WindowStage): Promise<void> {
// Main window is created, set main page for this ability
hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageCreate');
const windowBarMag = new WindowBarManager();
windowBarMag.immersiveWindow(windowStage, Const.TRANSPARENT_COLOR, true);
// 报错 await DataManager.getInstance().initStore("TeacherStore");
windowStage.loadContent('pages/SplashPage', (err) => {
if (err.code) {
hilog.error(0x0000, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err) ?? '');
return;
}
hilog.info(0x0000, 'testTag', 'Succeeded in loading the content.');
});
//这里就正常
await DataManager.getInstance().initStore("TeacherStore");
}
dataPreferences from '[@ohos](/user/ohos).data.preferences';
initStore(storeName: string): Promise<void> {
this.storeName = storeName;
return dataPreferences.getPreferences(this.context, this.storeName)
.then((preferences: dataPreferences.Preferences) => {
this.preferencesSp = preferences;
});
}
更多关于HarmonyOS 鸿蒙Next中UIAbility初始化dataPreferences from '@ohos.data.preferences'的实战教程也可以访问 https://www.itying.com/category-93-b0.html
放入位置不一样报错,是传入的context有问题。
存储Map对象,可以尝试使用treeMap,参考链接:@ohos.util.TreeMap (非线性容器TreeMap)-ArkTS API-ArkTS(方舟编程语言)-应用框架 - 华为HarmonyOS开发者 (huawei.com)
let treeMap : TreeMap<string, number> = new TreeMap();
treeMap.set("squirrel", 123);
treeMap.set("sparrow", 356);
let result = treeMap.get("sparrow");
用户首选项为应用提供Key-Value键值型的数据处理能力,支持应用持久化轻量级数据,并对其修改和查询。
数据存储形式为键值对,键的类型为字符串型,值的存储数据类型包括数字型、字符型、布尔型以及这3种类型的数组类型。
ValueType = number | string | boolean | Array | Array | Array | Uint8Array; 目前只有这几种类型
更多关于HarmonyOS 鸿蒙Next中UIAbility初始化dataPreferences from '@ohos.data.preferences'的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙Next中,UIAbility初始化dataPreferences模块时,可以使用[@ohos](/user/ohos).data.preferences提供的API来进行数据存储和读取操作。dataPreferences是鸿蒙系统提供的一种轻量级数据存储方式,适用于存储简单的键值对数据。
在UIAbility中初始化dataPreferences的步骤如下:
-
导入模块: 在UIAbility的代码中,首先需要导入
dataPreferences模块:import dataPreferences from '[@ohos](/user/ohos).data.preferences'; -
获取Preferences实例: 使用
getPreferences方法获取一个Preferences实例。通常需要传入上下文(context)和一个存储文件的名称:let context = ...; // 获取UIAbility的上下文 let preferences = await dataPreferences.getPreferences(context, 'myPreferences'); -
存储数据: 使用
put方法将数据存储到Preferences中。可以存储字符串、数字、布尔等基本类型的数据:await preferences.put('key', 'value'); -
提交更改: 使用
flush方法将更改提交到存储文件中:await preferences.flush(); -
读取数据: 使用
get方法从Preferences中读取数据:let value = await preferences.get('key', 'defaultValue'); -
删除数据: 使用
delete方法从Preferences中删除指定的键值对:await preferences.delete('key'); -
清除所有数据: 使用
clear方法清除Preferences中的所有数据:await preferences.clear();
通过以上步骤,可以在UIAbility中初始化并使用dataPreferences模块进行数据的存储和读取操作。
在HarmonyOS鸿蒙Next中,使用UIAbility初始化dataPreferences模块时,首先需要在onCreate生命周期方法中导入@ohos.data.preferences模块。然后,通过getPreferences方法获取Preferences实例,用于存储和管理应用数据。示例代码如下:
import UIAbility from '@ohos.app.ability.UIAbility';
import dataPreferences from '@ohos.data.preferences';
export default class EntryAbility extends UIAbility {
async onCreate(want, launchParam) {
try {
const preferences = await dataPreferences.getPreferences(this.context, 'myPrefs');
console.info('Preferences initialized successfully');
} catch (err) {
console.error('Failed to initialize preferences:', err);
}
}
}
这段代码展示了如何在UIAbility中初始化dataPreferences,以便后续进行数据存储和读取操作。

