日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
從微信小程序到鴻蒙JS開(kāi)發(fā)-storage緩存&自動(dòng)登錄

想了解更多內(nèi)容,請(qǐng)?jiān)L問(wèn):

從網(wǎng)站建設(shè)到定制行業(yè)解決方案,為提供成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)服務(wù)體系,各種行業(yè)企業(yè)客戶提供網(wǎng)站建設(shè)解決方案,助力業(yè)務(wù)快速發(fā)展。創(chuàng)新互聯(lián)公司將不斷加快創(chuàng)新步伐,提供優(yōu)質(zhì)的建站服務(wù)。

和華為官方合作共建的鴻蒙技術(shù)社區(qū)

https://harmonyos.

在應(yīng)用開(kāi)發(fā)時(shí),我們常需要將一些數(shù)據(jù)緩存到本地,以提升用戶體驗(yàn)。比如在一個(gè)電商的app中,如果希望用戶登錄成功后,下次打開(kāi)app可以自動(dòng)登錄,就需要將用戶信息存儲(chǔ)到緩存中。

鴻蒙JS開(kāi)發(fā)模式提供了操作數(shù)據(jù)緩存的API,首先需導(dǎo)入storage模塊。

 
 
 
 
  1. import storage from '@system.storage';

添加緩存的API為storage.set( ),指定key和value,在用戶登錄成功后將用戶名和密碼緩存到本地:

 
 
 
 
  1. // 登錄
  2.     login() {
  3.         fetch.fetch({
  4.             url: this.url + "/user/login?phone=" + this.phone + "&pwd=" + this.pwd,
  5.             responseType: "json",
  6.             success: res => {
  7.                 let data = JSON.parse(res.data);
  8.                 console.info(JSON.stringify(data));
  9.                 if (0 != data.code) {
  10.                     prompt.showToast({
  11.                         message: data.msg,
  12.                         duration: 3000
  13.                     })
  14.                 } else {
  15.                     let userInfo = data.data;
  16.                     ......
  17.                     // 寫入緩存
  18.                     storage.set({
  19.                         key: "userPhone",
  20.                         value: userInfo.mobile
  21.                     });
  22.                     storage.set({
  23.                         key: "userPwd",
  24.                         value: userInfo.password
  25.                     })
  26.                 }
  27.             }
  28.         })
  29.     },

注意,鴻蒙JS的數(shù)據(jù)緩存API是以key:value進(jìn)行存取的,value只能為string類型。如存儲(chǔ)其他類型,并不會(huì)失敗而進(jìn)入fail回調(diào),但在使用get( )的時(shí)候會(huì)無(wú)法取到對(duì)應(yīng)value的。

在進(jìn)入app時(shí),便可調(diào)用storage.get( )取出緩存中的用戶信息,通過(guò)給定key,在success回調(diào)中會(huì)返回對(duì)應(yīng)的value。取到用戶信息后并調(diào)用登錄方法實(shí)現(xiàn)自動(dòng)登錄功能。

 
 
 
 
  1. onShow() {
  2.       // 從其他頁(yè)面跳轉(zhuǎn)回來(lái),清除頁(yè)面棧
  3.       router.clear();
  4.       // 從緩存取用戶信息,自動(dòng)登錄
  5.       storage.get({
  6.           key: "userPhone",
  7.           success: data => {
  8.               if (data) {
  9.                   this.phone = data;
  10.                   storage.get({
  11.                       key: "userPwd",
  12.                       success: data => {
  13.                           if (data) {
  14.                               this.pwd = data;
  15.                               this.login();
  16.                           }
  17.                       }
  18.                   })
  19.               }
  20.           }
  21.       })
  22.       // 查詢購(gòu)物車數(shù)量
  23.       if (this.userInfo && this.userInfo.id) {
  24.           this.countCarts();
  25.       }
  26.   },

效果如下:

刪除緩存中數(shù)據(jù)的API為storage.delete( ),指定key即可刪除對(duì)應(yīng)數(shù)據(jù)。此方法在IDE中無(wú)提示(猜測(cè)是和delete關(guān)鍵詞重復(fù)了),但經(jīng)實(shí)驗(yàn)是可以正常使用的。

在用戶退出登錄后,應(yīng)清除緩存中的用戶信息。對(duì)應(yīng)方法如下:

 
 
 
 
  1. // 退出登錄
  2.   exitLogin() {
  3.       prompt.showDialog({
  4.           title: "提示",
  5.           message: "確認(rèn)退出登錄嗎?",
  6.           buttons: [
  7.               {
  8.                   text: "確定",
  9.                   color: "#E20A0B"
  10.               },
  11.               {
  12.                   text: "取消",
  13.                   color: "#666666"
  14.               }
  15.           ],
  16.           success: res => {
  17.               if (res.index == 0) {
  18.                   ......
  19.                   // 刪除緩存中用戶信息
  20.                   storage.delete({
  21.                       key: "userPhone"
  22.                   });
  23.                   storage.delete({
  24.                       key: "userPwd"
  25.                   });
  26.                   this.userInfo = null;
  27.               }
  28.           }
  29.       })
  30.   }

退出登錄過(guò)后再次進(jìn)入app,就不會(huì)自動(dòng)登錄了:

此外還有storage.clear( )方法用于清空所有的數(shù)據(jù)緩存。

微信小程序提供了類似的操作數(shù)據(jù)緩存的方法,分為同步方法和異步方法,且數(shù)據(jù)的value可為任何能夠通過(guò)JSON.stringify序列化的對(duì)象。因此在從微信小程序切換到鴻蒙JS開(kāi)發(fā)時(shí),在數(shù)據(jù)緩存這里踩了坑。鴻蒙storage的value只能為string,但其提供了文件存儲(chǔ),擁有更強(qiáng)大的數(shù)據(jù)存儲(chǔ)能力。

想了解更多內(nèi)容,請(qǐng)?jiān)L問(wèn):

和華為官方合作共建的鴻蒙技術(shù)社區(qū)

https://harmonyos.


分享名稱:從微信小程序到鴻蒙JS開(kāi)發(fā)-storage緩存&自動(dòng)登錄
URL鏈接:http://www.dlmjj.cn/article/dhoigce.html