HarmonyOS 鸿蒙Next preferences (用户首选项)怎么跨page获取数据?

HarmonyOS 鸿蒙Next preferences (用户首选项)怎么跨page获取数据? 我有两个page,index.ets和login.ets,是想实现index判断是否登录,在login页面中preferences.put存储登录信息,然后index页面进行调用,最终获取到的为空,在login页面是可以获取到储存的值的,两个页面都是用的下面的代码区别在于,一个get一个put,是用户首选项无法跨页面存储,还是我的调用方式不正确?

preferences.getPreferences(getContext(this), PREFERENCES_NAME, (err, val) => {
  let preferencesUserdata = val;
  let promise = preferencesUserdata.get('userdata', 'nodata');
  promise.then((data) => {
    console.log("CESHISHI:" + JSON.stringify(data))
  })
})

更多关于HarmonyOS 鸿蒙Next preferences (用户首选项)怎么跨page获取数据?的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

更多关于HarmonyOS 鸿蒙Next preferences (用户首选项)怎么跨page获取数据?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


没有持久化吧。

在HarmonyOS(鸿蒙Next)中,使用preferences(用户首选项)跨页面获取数据可以通过preferences的持久化存储特性实现。首先,在需要存储数据的页面中,使用preferencesput方法将数据保存到本地存储中。例如:

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

// 获取preferences实例
let prefs = await preferences.getPreferences(this.context, 'myPrefs');

// 存储数据
await prefs.put('key', 'value');
await prefs.flush();

在另一个页面中,可以通过相同的preferences实例获取已存储的数据。例如:

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

// 获取preferences实例
let prefs = await preferences.getPreferences(this.context, 'myPrefs');

// 获取数据
let value = await prefs.get('key', 'defaultValue');

通过这种方式,可以在不同的页面中共享和获取存储在preferences中的数据。preferences数据存储在同一应用的沙盒中,确保数据隔离和安全。

回到顶部