鸿蒙HarmonyOS之使用preferences首选项保存获取数据
一、工具类:PreferencesUtil.ets
工具类,包括创建Preferences首选项、保存和获取对应Key的数据等方法
示例代码中以保存Token字符串值为例
import { preferences } from '@kit.ArkData';
import { GlobalContext } from './GlobalContext';
const PREFERENCES_NAME = 'currPreferences';
const KEY_APP_LOGIN_TOKEN = 'loginToken';
/**
* 首选项-工具类 保存应用数据
*/
export class PreferencesUtil {
createPreferences(context: Context) {
let currPreferences: Function = (() => {
return preferences.getPreferences(context, {name: PREFERENCES_NAME});
})
GlobalContext.getContext().setObject('getPreferences',currPreferences);
}
/**
* 保存Token
* @param token
*/
saveLoginToken(token: string){
let currPreferences: Function = GlobalContext.getContext().getObject('getPreferences') as Function;
currPreferences().then((preferences: preferences.Preferences) => {
preferences.put(KEY_APP_LOGIN_TOKEN, token);
preferences.flush();
});
}
/**
* 获取Token
* @returns
*/
async getLoginToken(){
let currPreferences: Function = GlobalContext.getContext().getObject('getPreferences') as Function;
let token: string = await (await currPreferences()).get(KEY_APP_LOGIN_TOKEN, '');
return token;
}
}
export default new PreferencesUtil();
二、使用
1、EntryAbility.ets中的onCreate()方法中调用相应方法创建首选项示例
export default class EntryAbility extends UIAbility {
onCreate(want: Want, launchParam: AbilityConstant.LaunchParam) {
hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate');
//添加以下方法调用代码
GlobalContext.getContext().setObject('abilityWant', want);
PreferencesUtil.createPreferences(this.context);
}
...
}
2、保存Token值
直接调用工具类的方法
PreferencesUtil.saveLoginToken('xxx');
3、获取保存的Token值
PreferencesUtil.getLoginToken().then((value) => {
//value就是获取到的值
});
三、完成,Nice!
如有错误,欢迎指正!