HarmonyOS Next首选项preferences封装

1、EntryAbility获取Context并保存到AppStorage中,可直接在工具类中获取,无需传递

  onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
    AppStorage.setOrCreate<Context>(Constant.KEY_CONTEXT_ABILITY,this.context)
    hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate');
  }

2、PreferUtil非业务工具类

import { preferences } from '@kit.ArkData'
import { PreferConstant } from './PreferConstant'
import { Context } from '@kit.AbilityKit'
import { Constant } from '../app/Constant'

export class PreferUtil {

  static getStore(){
    const context = AppStorage.get<Context>(Constant.KEY_CONTEXT_ABILITY)
    return preferences.getPreferencesSync(context, {
      name: PreferConstant.APP_STORE_DEFAULT
    })
  }

  static put(key: string, value: preferences.ValueType) {
    const store = PreferUtil.getStore()
    store.putSync(key, value)
    store.flush()
  }

  static get(key: string, defaultValue: preferences.ValueType) {
    const store = PreferUtil.getStore()
    return store.getSync(key, defaultValue)
  }

  static delete(key: string) {
    const store = PreferUtil.getStore()
    store.deleteSync(key)
    store.flush()
  }
}

3、分功能模块写管理工具类,如AppPreferHelper、UserHelper等

import { PreferConstant } from './PreferConstant'
import { PreferUtil } from './PreferUtil'

export class AppPreferHelper {

  static saveToken(token: string) {
    PreferUtil.put(PreferConstant.KEY_TOKEN, token)
  }

  static getToken() {
    return PreferUtil.get(PreferConstant.KEY_TOKEN, "") as string
  }

}

4、常量类PreferConstant只放首选项相关

export class PreferConstant {

  static APP_STORE_DEFAULT = "default_store" // 首选项仓库的key

  static KEY_TOKEN="token"
  static KEY_USER_INFO="userinfo"

}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容