一、工具类:PreferencesUtil.ets
工具类,包括创建Preferences首选项、保存和获取对应Key的数据等方法
示例代码中以保存Token字符串值为例:
01 | import { preferences } from '@kit.ArkData' ; |
02 | import { GlobalContext } from './GlobalContext' ; |
03 | const PREFERENCES_NAME = 'currPreferences' ; |
04 | const KEY_APP_LOGIN_TOKEN = 'loginToken' ; |
08 | export class PreferencesUtil { |
09 | createPreferences(context: Context) { |
10 | let currPreferences: Function = (() => { |
11 | return preferences.getPreferences(context, {name: PREFERENCES_NAME}); |
13 | GlobalContext.getContext().setObject( 'getPreferences' ,currPreferences); |
19 | saveLoginToken(token: string){ |
20 | let currPreferences: Function = GlobalContext.getContext().getObject( 'getPreferences' ) as Function; |
21 | currPreferences().then((preferences: preferences.Preferences) => { |
22 | preferences.put(KEY_APP_LOGIN_TOKEN, token); |
30 | async getLoginToken(){ |
31 | let currPreferences: Function = GlobalContext.getContext().getObject( 'getPreferences' ) as Function; |
32 | let token: string = await (await currPreferences()).get(KEY_APP_LOGIN_TOKEN, '' ); |
36 | export default new PreferencesUtil(); |
GlobalContext.ets
01 | export class GlobalContext { |
02 | private constructor() { } |
03 | private static instance: GlobalContext; |
04 | private _objects = new Map<string, Object>(); |
05 | public static getContext(): GlobalContext { |
06 | if (!GlobalContext.instance) { |
07 | GlobalContext.instance = new GlobalContext(); |
09 | return GlobalContext.instance; |
11 | getObject(value: string): Object | undefined { |
12 | return this ._objects.get(value); |
14 | setObject(key: string, objectClass: Object): void { |
15 | this ._objects.set(key, objectClass); |
二、使用
1、EntryAbility.ets中的onCreate()方法中调用相应方法创建首选项示例
1 | export default class EntryAbility extends UIAbility { |
2 | onCreate(want: Want, launchParam: AbilityConstant.LaunchParam) { |
3 | hilog.info(0x0000, 'testTag' , '%{public}s' , 'Ability onCreate' ); |
5 | GlobalContext.getContext().setObject( 'abilityWant' , want); |
6 | PreferencesUtil.createPreferences( this .context); |
2、保存Token值
直接调用工具类的方法
1 | PreferencesUtil.saveLoginToken( 'xxx' ); |
3、获取保存的Token值
1 | PreferencesUtil.getLoginToken().then((value) => { |