赞
踩
1.导入用户首选项模块。
import preferences from '@ohos.data.preferences';
2.要通过用户首选项实现数据持久化,首先要获取Preferences实例。读取指定文件,将数据加载到Preferences实例,用于数据操作。
所有代码实例:
- import preferences from '@ohos.data.preferences';
- class PreferencesUtil{
- preMap:Map<string,preferences.Preferences>=new Map()
- async loadPreference(context,name:string){
- try {
- let pref = await preferences.getPreferences(context,name)
- this.preMap.set(name,pref)
- console.log(`加载preference${name}成功`)
- }catch(e){
- console.log(`加载preference${name}失败`,JSON.stringify(e))
- }
- }
-
- //存储数据
- async putPreferenceVale(name:string,key:string,value:preferences.ValueType){
- if(!this.preMap.has(name)){
- console.log(`加载preference${name}失败`,`${name},尚未初始化`)
- return
- }
- try{
- console.log(JSON.stringify(value),'你好')
- let pref=this.preMap.get(name)
- // @ts-ignore
- await pref.put(key,JSON.stringify(value))
- // @ts-ignore
- await pref.flush()
-
- console.log("成功",`保存${name}.${key}=${value}成功`)
- // return value
- }catch(e){
- console.log("保存失败",JSON.stringify(e))
- }
-
- }
-
- //读取数据
- async getPreferenceValue(name:string,key:string,defaultVale:preferences.ValueType){
- if(!this.preMap.has(name)){
- console.log(`加载preference${name}失败`,`${name},尚未初始化`)
- return
- }
- try{
- console.log(JSON.stringify(this.preMap),'hhhh')
- let pref=this.preMap.get(name)
- // @ts-ignore
- console.log(JSON.stringify(pref),"赛666666")
- let value= await pref.get(key,defaultVale)
- console.log("testTag",`读取${name},${key}=${value}成功}`)
- return value
- }catch(e){
- console.log("读取失败",JSON.stringify(e))
- }
- }
- pref(pref: any,arg1: string) {
- throw new Error('Method not implemented.');
- }
-
- }
- const preferencesUtil = new PreferencesUtil();
-
- export default preferencesUtil as PreferencesUtil;
3.项目中具体读取示例.
- @State _id:string = ""
- @State username:string = ""
- @State password:string = ""
- @State imgPath:string = ""
- async aboutToAppear(){
- this._id = await SharePre.getPreferenceValue('MyPreferences','_id','666') as string
- this.username = await SharePre.getPreferenceValue('MyPreferences','username','666') as string
- this.password = await SharePre.getPreferenceValue('MyPreferences','password','666') as string
- this.imgPath = await SharePre.getPreferenceValue('MyPreferences','imgPath','666') as string
- }
4.写入
- SharePre.putPreferenceVale('MyPreferences','username',val.data.data.username)
- SharePre.putPreferenceVale('MyPreferences','password',val.data.data.password)
- SharePre.putPreferenceVale('MyPreferences','telephone',val.data.data.telephone)
- SharePre.putPreferenceVale('MyPreferences','_id',val.data.data._id)
- SharePre.putPreferenceVale('MyPreferences','imgPath',val.data.data.imgPath)
修改会替换掉上次的存储
Image(this.imgPath.slice(1,this.imgPath.length-1))
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。