阅读:442回复:0
Harmoney Next中首选项的使用方法
Harmony Next的正式版本发布,也就是Harmony OS5. 对应的首选项使用方法也不同了. 下面共享一份项目中用到的首选项的封装与使用.
封装首选项的代码: import data_preferences from '@ohos.data.preferences'; import { BusinessError } from '@ohos.base'; const PREFERENCES_NAME = "PREFERENCES_NAME" //首选项名称 /** * 首选项工具类:key只能是字符串类型,value类型:number | string | boolean | Array<number> | Array<string> | Array<boolean>; * */ export class PreferencesManager { private static localDataManager: PreferencesManager; static instance() { if (!PreferencesManager.localDataManager) { PreferencesManager.localDataManager = new PreferencesManager(); } return PreferencesManager.localDataManager; } put(context: Context, key: string, value: data_preferences.ValueType) { let preferences = data_preferences.getPreferences(context, PREFERENCES_NAME); preferences.then((res) => { res.put(key, value).then(() => { res.flush(); }).catch((err: BusinessError) => { }); }) } get(context: Context, key: string, callback: Function) { let preferences = data_preferences.getPreferences(context, PREFERENCES_NAME); preferences.then((res) => { res.get(key, undefined).then((value) => { callback(value) }).catch((err: BusinessError) => { callback(undefined) }); }); } delete(context: Context, key: string) { let preferences = data_preferences.getPreferences(context, PREFERENCES_NAME); preferences.then((res) => { res.delete(key).then((value) => { }); }); } clear(context: Context) { let preferences = data_preferences.getPreferences(context, PREFERENCES_NAME); preferences.then((res) => { res.clear().then((value) => { }); }); } } 存数据到首选项 import {PreferencesManager} from './../Common/PreferencesUtils' //给首选项添加数据 PreferencesManager.instance().put(getContext(this),'user','123') 从首选项取数据 import {PreferencesManager} from './../Common/PreferencesUtils' aboutToAppear(): void { PreferencesManager.instance().get(getContext(this),'user',(val: preferences.ValueType) => { if(!val){ //没有值,跳到登录页 router.pushUrl({url:"pages/Login"}) } //console.info("Succeeded in getting value of 'startup'. val: " + val); }) } |
|
|