AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

當(dāng)前位置:首頁(yè) > 科技  > 軟件

分享元服務(wù)「心情盲盒」開發(fā)經(jīng)歷

來(lái)源: 責(zé)編: 時(shí)間:2024-01-08 09:18:11 258觀看
導(dǎo)讀想了解更多關(guān)于開源的內(nèi)容,請(qǐng)?jiān)L問:51CTO 鴻蒙開發(fā)者社區(qū)https://ost.51cto.com前言這次的端云一體化活動(dòng)同樣是開發(fā)鴻蒙應(yīng)用或者元服務(wù),上次的端云一體化活動(dòng),我也參加了,當(dāng)時(shí)簡(jiǎn)單入手,在原有模板的基礎(chǔ)上開發(fā)了一個(gè)元服務(wù),

anF28資訊網(wǎng)——每日最新資訊28at.com

想了解更多關(guān)于開源的內(nèi)容,請(qǐng)?jiān)L問:anF28資訊網(wǎng)——每日最新資訊28at.com

51CTO 鴻蒙開發(fā)者社區(qū)anF28資訊網(wǎng)——每日最新資訊28at.com

https://ost.51cto.comanF28資訊網(wǎng)——每日最新資訊28at.com

前言

這次的端云一體化活動(dòng)同樣是開發(fā)鴻蒙應(yīng)用或者元服務(wù),上次的端云一體化活動(dòng),我也參加了,當(dāng)時(shí)簡(jiǎn)單入手,在原有模板的基礎(chǔ)上開發(fā)了一個(gè)元服務(wù),那個(gè)完全不算一個(gè)正常的項(xiàng)目,充其量只能稱呼為一個(gè)測(cè)試DEMO。通過那個(gè)DEMO,我熟悉了端云一體化開發(fā)的步驟,工具的用法,服務(wù)卡片的開發(fā)和交互也都熟悉了。但當(dāng)時(shí)受限于個(gè)人的技術(shù)水平,沒能開發(fā)一個(gè)像樣的元服務(wù)提交發(fā)布,但當(dāng)時(shí)有了一個(gè)簡(jiǎn)單的構(gòu)思,暢想了一下自己會(huì)做一個(gè)什么樣的元服務(wù),當(dāng)時(shí)構(gòu)思的項(xiàng)目是“快遞盲盒”,這個(gè)快遞裝載著陌生朋友的心情,所以叫它盲盒。礙于當(dāng)時(shí)個(gè)人對(duì)端云一體化的云端還不夠熟悉,手邊也沒有支持API9的真機(jī)可以調(diào)試,所以當(dāng)時(shí)研究了幾天,感覺無(wú)望,毅然放棄了。時(shí)隔了小半年的時(shí)間,通過不斷的學(xué)習(xí)官網(wǎng)的文檔和別人的帖子,發(fā)現(xiàn)在自己項(xiàng)目中集成serverless云服務(wù)真是并不復(fù)雜,一旦搞懂,就所向披靡了,感覺開發(fā)的道路豁然開朗,有任何想法都可以去試試手了。這次,為了圓夢(mèng),我就把上次那個(gè)想法開發(fā)出來(lái)了,做成了一個(gè)元服務(wù),并成功上架了。這個(gè)元服務(wù)就是“心情盲盒”,使用的人不多,可能使用價(jià)值和受歡迎程度都還不夠,不要緊,這次的經(jīng)歷,堅(jiān)定了我克服困難勇往直前的信念,也大大提高了自己遇到問題時(shí)分析問題和解決問題的能力。anF28資訊網(wǎng)——每日最新資訊28at.com

簡(jiǎn)介

“心情盲盒”這款元服務(wù),主要包含兩個(gè)模塊,服務(wù)卡片和應(yīng)用主頁(yè)面。anF28資訊網(wǎng)——每日最新資訊28at.com

服務(wù)卡片查看隨機(jī)抽取的陌生人的心情寄語(yǔ),用戶點(diǎn)擊卡片盒子邊緣空白處,可以改變盒子的顏色,點(diǎn)擊盒子會(huì)觸發(fā)盒子旋轉(zhuǎn),同時(shí)獲取別人的心情,心情分為喜怒哀樂四種,分別以不同的表情圖像顯示,圖像下會(huì)顯示對(duì)方的手機(jī)號(hào)末尾4位數(shù)字,卡片中間顯示心情詳情,下方是功能操作按鈕,可以繼續(xù)獲取,或者發(fā)布一個(gè)心情。anF28資訊網(wǎng)——每日最新資訊28at.com

應(yīng)用主頁(yè)面中,用戶可以輸入自己的心里話,并選擇此刻的心情,然后發(fā)布。anF28資訊網(wǎng)——每日最新資訊28at.com

因?yàn)檫@個(gè)元服務(wù)的業(yè)務(wù)功能定義為盲盒,所以查看者和發(fā)布者都是匿名的。盲盒信息是每日自動(dòng)更新的,因?yàn)槊總€(gè)人每天都會(huì)有新的心情,所以服務(wù)端只保存了當(dāng)天的心情數(shù)據(jù),昨天和之前的會(huì)被服務(wù)器自動(dòng)刪除,到了明天今天的心情數(shù)據(jù)也會(huì)消失。anF28資訊網(wǎng)——每日最新資訊28at.com

本篇文檔簡(jiǎn)單介紹一下心情盲盒的功能和實(shí)現(xiàn)過程。anF28資訊網(wǎng)——每日最新資訊28at.com

預(yù)覽

anF28資訊網(wǎng)——每日最新資訊28at.com

功能介紹

盒子顏色可以隨機(jī)改變,點(diǎn)擊服務(wù)卡片中盒子外的部分,盒子顏色和背景底色都會(huì)跟隨改變。anF28資訊網(wǎng)——每日最新資訊28at.com

anF28資訊網(wǎng)——每日最新資訊28at.com

點(diǎn)擊盒子,觸發(fā)盒子旋轉(zhuǎn)動(dòng)畫,同時(shí)跳轉(zhuǎn)到新的界面。anF28資訊網(wǎng)——每日最新資訊28at.com

anF28資訊網(wǎng)——每日最新資訊28at.com

獲取到心情數(shù)據(jù)后,會(huì)直接顯示心情信息。anF28資訊網(wǎng)——每日最新資訊28at.com

anF28資訊網(wǎng)——每日最新資訊28at.com

上方的人臉表情是代表喜怒哀樂心情的,看上面這樣子好像是有些不高興,下方的小數(shù)字代表發(fā)布者手機(jī)號(hào)尾部4位,說明這句心里話是尾號(hào)6236的朋友發(fā)布的。中間的黑色文字就是對(duì)方說的話。點(diǎn)擊“再換個(gè)人”,會(huì)重新返回盲盒界面,同時(shí)顏色隨機(jī)改變,再點(diǎn)擊盲盒,又會(huì)繼續(xù)獲取新的心情信息。不論你登錄與否,都可以查看別人的心情,但要想發(fā)表自己的心情,就需要通過手機(jī)號(hào)進(jìn)行注冊(cè)一下了。anF28資訊網(wǎng)——每日最新資訊28at.com

有時(shí),也可能你是當(dāng)天第一個(gè)查看盲盒的人,沒有新數(shù)據(jù)就會(huì)顯示如下界面,此時(shí),你可以發(fā)表一個(gè)心情,作為首發(fā)哦。或者刷新一下,看看是不是因?yàn)榫W(wǎng)絡(luò)不太好的原因沒獲取到數(shù)據(jù)。anF28資訊網(wǎng)——每日最新資訊28at.com

anF28資訊網(wǎng)——每日最新資訊28at.com

點(diǎn)擊發(fā)表之后,會(huì)出現(xiàn)如下的發(fā)表界面。anF28資訊網(wǎng)——每日最新資訊28at.com

anF28資訊網(wǎng)——每日最新資訊28at.com

在我想說中,輸入自己想說的心里話,在心情一欄,選擇自己此刻的比較接近的心情,然后點(diǎn)擊“發(fā)布盲盒”就可以了。anF28資訊網(wǎng)——每日最新資訊28at.com

anF28資訊網(wǎng)——每日最新資訊28at.com

發(fā)布成功后,會(huì)提示發(fā)布成功,用戶可以選擇“再發(fā)一個(gè)”繼續(xù)發(fā)表心情,或者“以后再說”關(guān)閉發(fā)表界面。anF28資訊網(wǎng)——每日最新資訊28at.com

anF28資訊網(wǎng)——每日最新資訊28at.com

如果用戶首次使用,沒有登錄,會(huì)提示如下界面,讓用戶進(jìn)行登錄。anF28資訊網(wǎng)——每日最新資訊28at.com

anF28資訊網(wǎng)——每日最新資訊28at.com

勾選底部的“閱讀并同意”的方框,就可以進(jìn)行登錄操作了。anF28資訊網(wǎng)——每日最新資訊28at.com

anF28資訊網(wǎng)——每日最新資訊28at.com

其他玩法

基于鴻蒙系統(tǒng)對(duì)卡片支持的多功能性,我們可以添加多個(gè)心情盲盒服務(wù)卡片,構(gòu)成一個(gè)卡片墻,或者把多個(gè)心情盲盒堆疊在一起。anF28資訊網(wǎng)——每日最新資訊28at.com

盲盒墻效果:anF28資訊網(wǎng)——每日最新資訊28at.com

anF28資訊網(wǎng)——每日最新資訊28at.com

盲盒堆疊效果:anF28資訊網(wǎng)——每日最新資訊28at.com

anF28資訊網(wǎng)——每日最新資訊28at.com

代碼實(shí)現(xiàn)

服務(wù)卡片通過message類型的action通知EntryFormAbility獲取新數(shù)據(jù)。anF28資訊網(wǎng)——每日最新資訊28at.com

async getMood() {  postCardAction(this, {    'action': 'message',    'params': {    }  });}

EntryFormAbility在onFormEvent中處理message類型消息,并讀取云數(shù)據(jù)庫(kù)。anF28資訊網(wǎng)——每日最新資訊28at.com

async onFormEvent(formId, message) {    // Called when a specified message event defined by the form provider is triggered.    initialize(this.context, json);    try {      const context =  this.context      const value = await context.resourceManager.getRawFileContent('schema.json');      let json: string = buffer.from(value).toString("utf8");      let objectTypeInfo: ObjectTypeInfo = JSON.parse(json);	...      let agcDataBase = cloud.database({ objectTypeInfo: objectTypeInfo, zoneName: "MessageDB" })      const resultArray = await (agcDataBase as Database)        .collection(Message)        .query()        .equalTo('insertDate', curDate)        .orderByDesc("id")        .limit(100, 0)        .get();		...    } catch (err) {    }  }

然后將結(jié)果反饋給服務(wù)卡片。anF28資訊網(wǎng)——每日最新資訊28at.com

// updateform      let formData = {        'user': msg.getUser(),        'content': msg.getContent(),        'mood': moodIdx,      };      let formInfo = formBindingData.createFormBindingData(formData)      formProvider.updateForm(formId, formInfo).then((data) => {        console.info('FormAbility updateForm success.' + JSON.stringify(data));      }).catch((error) => {        console.error('FormAbility updateForm failed: ' + JSON.stringify(error));      })

用戶發(fā)布心情數(shù)據(jù),直接更新云數(shù)據(jù)庫(kù)。anF28資訊網(wǎng)——每日最新資訊28at.com

const value = await context.resourceManager.getRawFileContent('schema.json');let json: string = buffer.from(value).toString("utf8");let schema: ObjectTypeInfo = JSON.parse(json);const record = await cloud.database({ objectTypeInfo: schema, zoneName: "MessageDB" })  .collection(Message)  .upsert({    "user": phone,    "content": content,    "mood": mood,    "insertDate": curDate  });

用戶登錄的實(shí)現(xiàn)。anF28資訊網(wǎng)——每日最新資訊28at.com

Login({  modes: [AuthMode.PHONE_VERIFY_CODE],  onSuccess: async (user: AuthUser) => {    // this.shownPartIndex = 2;    this.isShowButton = false    AppStorage.Set<AuthUser>('user', user);    this.currentUser = AppStorage.Get<AuthUser>('user');    if (this.currentUser != null && this.currentUser != undefined) {      let agcUserExtra = await this.currentUser.getUserExtra();      this.creatTime = agcUserExtra.getCreateTime()      this.lastLogin = agcUserExtra.getLastSignInTime()      router.replaceUrl({        url: 'pages/Home'      })    }  }}) {  if (this.isShowButton && this.isAccept) {    Button({ type: ButtonType.Normal }) {      Text($r('app.string.auth_service_login_button_text'))        .fontColor($r('app.color.white'))    }  }}

用戶登出的實(shí)現(xiàn)。anF28資訊網(wǎng)——每日最新資訊28at.com

async logout() {  cloud.auth().signOut().then(() => {    this.isShowButton = true    this.currentUser = null  }).catch((error: Object) => {  });}

用戶注銷的實(shí)現(xiàn)。anF28資訊網(wǎng)——每日最新資訊28at.com

deleteUser() {  cloud.auth().deleteUser().then(() => {    this.isShowButton = true    this.currentUser = null  }).catch((err: Object) => {  })}

總結(jié)

通過這次實(shí)踐,熟悉了端云一體化新模板的功能,也熟悉了云數(shù)據(jù)庫(kù)、云函數(shù)和用戶認(rèn)證的用法,為以后開發(fā)其他項(xiàng)目打了一個(gè)基礎(chǔ)。anF28資訊網(wǎng)——每日最新資訊28at.com

想了解更多關(guān)于開源的內(nèi)容,請(qǐng)?jiān)L問:anF28資訊網(wǎng)——每日最新資訊28at.com

51CTO 鴻蒙開發(fā)者社區(qū)anF28資訊網(wǎng)——每日最新資訊28at.com

https://ost.51cto.comanF28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.tebozhan.com/showinfo-26-57938-0.html分享元服務(wù)「心情盲盒」開發(fā)經(jīng)歷

聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com

上一篇: 五個(gè)用于前端的Python庫(kù)

下一篇: 還得是騰訊,撈了我一把!

標(biāo)簽:
  • 熱門焦點(diǎn)
  • 紅魔電競(jìng)平板評(píng)測(cè):大屏幕硬實(shí)力

    前言:三年的疫情因?yàn)橐暇W(wǎng)課的原因激活了平板市場(chǎng),如今網(wǎng)課的時(shí)代已經(jīng)過去,大家的生活都恢復(fù)到了正軌,這也就意味著,真正考驗(yàn)平板電腦生存的環(huán)境來(lái)了。也就是面對(duì)著這種殘酷的
  • 天貓精靈Sound Pro體驗(yàn):智能音箱沒有音質(zhì)?來(lái)聽聽我的

    這幾年除了手機(jī)作為智能生活終端最主要的核心之外,第二個(gè)可以成為中心點(diǎn)的產(chǎn)品是什么?——是智能音箱。 手機(jī)在執(zhí)行命令的時(shí)候有兩種操作方式,手和智能語(yǔ)音助手,而智能音箱只
  • 三言兩語(yǔ)說透設(shè)計(jì)模式的藝術(shù)-簡(jiǎn)單工廠模式

    一、寫在前面工廠模式是最常見的一種創(chuàng)建型設(shè)計(jì)模式,通常說的工廠模式指的是工廠方法模式,是使用頻率最高的工廠模式。簡(jiǎn)單工廠模式又稱為靜態(tài)工廠方法模式,不屬于GoF 23種設(shè)計(jì)
  • 企業(yè)采用CRM系統(tǒng)的11個(gè)好處

    客戶關(guān)系管理(CRM)軟件可以為企業(yè)提供很多的好處,從客戶保留到提高生產(chǎn)力。  CRM軟件用于企業(yè)收集客戶互動(dòng),以改善客戶體驗(yàn)和滿意度。  CRM軟件市場(chǎng)規(guī)模如今超過580
  • 大廠卷向扁平化

    來(lái)源:新熵作者丨南枝 編輯丨月見大廠職級(jí)不香了。俗話說,兵無(wú)常勢(shì),水無(wú)常形,互聯(lián)網(wǎng)企業(yè)調(diào)整職級(jí)體系并不稀奇。7月13日,淘寶天貓集團(tuán)啟動(dòng)了近年來(lái)最大的人力制度改革,目前已形成一
  • 8月見!小米MIX Fold 3獲得3C認(rèn)證:支持67W快充

    這段時(shí)間以來(lái),包括三星、一加、榮耀等等有不少品牌旗下的最新折疊屏旗艦都得到了不少爆料,而小米新一代折疊屏旗艦——小米MIX Fold 3此前也屢屢被傳
  • Android 14發(fā)布:首批適配機(jī)型公布

    5月11日消息,谷歌在今天凌晨舉行了I/O大會(huì),本次發(fā)布會(huì)谷歌帶來(lái)了自家的AI語(yǔ)言模型PaLM 2、谷歌Pixel Fold折疊屏、谷歌Pixel 7a手機(jī),同時(shí)發(fā)布了Androi
  • SN570 NVMe SSD固態(tài)硬盤 價(jià)格與性能兼具

    SN570 NVMe SSD固態(tài)硬盤是西部數(shù)據(jù)發(fā)布的最新一代WD Blue系列的固態(tài)硬盤,不僅閃存技術(shù)更為精進(jìn),性能也得到了進(jìn)一步的躍升。WD Blue SN570 NVMe SSD的包裝外
  • 華為舉行春季智慧辦公新品發(fā)布會(huì) 首次推出電子墨水屏平板

    北京時(shí)間2月27日晚,華為在巴塞羅那舉行春季智慧辦公新品發(fā)布會(huì),在海外市場(chǎng)推出之前已經(jīng)在中國(guó)市場(chǎng)上市的筆記本、平板、激光打印機(jī)等辦公產(chǎn)品,并首次推出搭載
Top