From 1ce875be27d9011c3944c6b975d9f817947ecdf8 Mon Sep 17 00:00:00 2001
From: wwf <1971391498@qq.com>
Date: 星期三, 01 十月 2025 16:22:24 +0800
Subject: [PATCH] 登录、注册

---
 entry/src/main/ets/utils/PreferencesUtils.ets |   92 ++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 92 insertions(+), 0 deletions(-)

diff --git a/entry/src/main/ets/utils/PreferencesUtils.ets b/entry/src/main/ets/utils/PreferencesUtils.ets
new file mode 100644
index 0000000..584527d
--- /dev/null
+++ b/entry/src/main/ets/utils/PreferencesUtils.ets
@@ -0,0 +1,92 @@
+import { preferences } from "@kit.ArkData";
+
+/**
+ * @ProjectName : HealthNS
+ * @FileName : PreferencesUtils
+ * @UserName : 淇ⅵ
+ * @Time : 2025/9/14 09:25
+ * @Description : 鏈湴鎸佷箙鍖栧瓨鍌�
+ */
+class PreferencesUtils {
+  //鍒涘缓PS鏈湴瀛樺偍鐨勯泦鍚堟暟鎹紝鍙互鏀寔澶氫釜瀛樺偍瀛樺湪
+  prefMap: Map<string,preferences.Preferences> = new Map();
+  //鍒濆鍖栨柟娉� 鍚屾锛堢被浼间簬鎺掗槦锛屼笂涓换鍔″畬鎴愶紝鎵嶅洖鍒颁笅涓�涓换鍔★紝鍩烘湰涓嶈兘鏈夎�楁椂鎿嶄綔锛�
+  //寮傛锛屽紑杈熶竴涓瓙绾跨▼锛屽湪瀛愮嚎绋嬭繍琛屽畬姣曪紝缁撴灉杩斿洖缁欎富绾跨▼
+  //鎻愪緵寮傛绾跨▼璇硶绯� async/await
+  //context: Context 褰撳墠閭d釜椤甸潰瑕佷娇鐢紝name瀛樺偍鐨勫悕绉�
+  async loadPreferences(context: Context,name:string){
+    //涓轰簡淇濊瘉姝e父杩涜鍒濆鍖栵紝鎺ㄨ崘浣跨敤寮傚父鎹曡幏锛屼繚璇佸湪寮傚父鎯呭喌涓嬶紝APP涓嶄細宕╂簝
+    try {
+      //鍒濆鍖栨棤闂锛屾墽琛屾甯搁�昏緫
+      //鍒涘缓PS瀛樺偍
+      const pref = await preferences.getPreferences(context,name)
+      //鍒濆鍚庣殑瀛樺偍锛屽瓨鏀捐繎Map闆嗗悎
+      this.prefMap.set(name,pref)
+      console.info(`鍒濆鍖�${name}瀛樺偍瀹屾垚`)
+    } catch (e) {
+      console.info(`鍒濆鍖�${name}澶辫触锛屽け璐ュ師鍥狅細 ${e}}`)
+    }
+  }
+  //娣诲姞鏁版嵁 name: PS瀛樺偍鐨勫悕绉帮紝key锛氬瓨鍌ㄥ�肩殑鍒悕锛寁alue瀛樺偍鐨勫叿浣撳��
+  async putPreferences(name:string,key:string,value:preferences.ValueType){
+    //鍏堝垽鏂璏ap鏁版嵁閲屾湁娌℃湁姝e父鍒濆鍖栵紙闆嗗悎閲屽瓨涓嶅瓨鍦ㄥ綋鍓峆S瀛樺偍锛�
+    if (!this.prefMap.has(name)) {
+      //! 闈烇紝琛ㄧず鏀筆S涓嶅瓨鍦�
+      console.info(`${name}瀛樺偍涓嶅瓨鍦�,璇峰垵濮嬪寲`)
+      return
+    }
+    try {
+      //褰揚S瀛樺偍瀛樺湪锛屾墽琛屽綋涓嬮�昏緫
+      const pref = this.prefMap.get(name)
+      //鍐欏叆鏁版嵁
+      await pref?.put(key,value)
+      //鎸佷箙鍖栵紝鍒风鐩�
+      await pref?.flush()
+      console.info(`${name}瀛樺偍鍐欏叆鏁版嵁鎴愬姛`)
+    } catch (e){
+      console.info(`${name}瀛樺偍鍐欏叆鏁版嵁澶辫触锛屽け璐ュ師鍥狅細 ${e}`)
+    }
+  }
+  //璇诲彇鏁版嵁
+  async getPreferences(name: string,key: string,defaultValue: preferences.ValueType){
+    //鍏堝垽鏂璏ap鏁版嵁閲屾湁娌℃湁姝e父鍒濆鍖栵紙闆嗗悎閲屽瓨涓嶅瓨鍦ㄥ綋鍓峆S瀛樺偍锛�
+    if (!this.prefMap.has(name)) {
+      //! 闈烇紝琛ㄧず鏀筆S涓嶅瓨鍦�
+      console.info(`璇诲彇${name}瀛樺偍涓嶅瓨鍦�,璇峰垵濮嬪寲`)
+      return
+    }
+    try {
+      //鑾峰彇Map閲岄潰瀛樼殑瀛樺偍
+      const pref = this.prefMap.get(name)
+      //寮�濮嬭鍙栨暟鎹�
+      const value = await pref?.get(key,defaultValue)
+      console.info(`璇诲彇${name}瀛樺偍鎴愬姛锛屾暟鎹负锛�${JSON.stringify(value)}`)
+      return value
+    } catch (e){
+      console.info(`璇诲彇${name}瀛樺偍鎵嬪け璐ワ紝澶辫触鍘熷洜: ${e}}`)
+      return e
+    }
+  }
+  //鍒犻櫎鏁版嵁
+  async delPreferences(name:string,key:string){
+    //鍏堝垽鏂璏ap鏁版嵁閲屾湁娌℃湁姝e父鍒濆鍖栵紙闆嗗悎閲屽瓨涓嶅瓨鍦ㄥ綋鍓峆S瀛樺偍锛�
+    if (!this.prefMap.has(name)) {
+      //! 闈烇紝琛ㄧず鏀筆S涓嶅瓨鍦�
+      console.info(`璇诲彇${name}瀛樺偍涓嶅瓨鍦�,鏃犳硶鍒犻櫎`)
+      return
+    }
+    try {
+      //鎷垮埌瀛樺偍
+      const pref = this.prefMap.get(name)
+      //寮�濮嬪垹闄ゆ暟鎹�
+      await pref?.delete(key)
+      //鍒风鐩�
+      await pref?.flush()
+      console.info(`鍒犻櫎${name}瀛樺偍鎴愬姛`)
+    }catch (e) {
+      console.info(`鍒犻櫎${name}瀛樺偍澶辫触锛屽け璐ュ師鍥�:${e}`)
+    }
+  }
+}
+//浠垮崟鍒╋紝鏁翠釜椤圭洰鍙渶瑕佷竴涓瓨鍌紝鍑忓皯绾跨▼娑堣��
+export default new PreferencesUtils() as PreferencesUtils
\ No newline at end of file

--
Gitblit v1.8.0