|
阅读:2199回复: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);
})
} |
|
|