本篇文章我們將分享如何在 OpenHarmony 上開(kāi)發(fā)服務(wù)卡片。
洞察鴻蒙軟件開(kāi)發(fā)
APPGallery Connect 的該軟件需要通過(guò)在 APPGallery Connect 中創(chuàng)建項(xiàng)目后添加應(yīng)用從而獲取 Json 文件。
然后把此文件放在碼云中下載的 FA 源碼中:
DistSchedule etconfigsrcmain esources
按照文檔開(kāi)發(fā) UI 界面,點(diǎn)擊構(gòu)建的 Generate Key and CSR 創(chuàng)建用戶名與密鑰進(jìn)行簽名。
①創(chuàng)建項(xiàng)目
在華為開(kāi)發(fā)官網(wǎng)的“我的項(xiàng)目”中,選擇 HarmonyOS 平臺(tái)等完成填寫:
https://developer.huawei.com/consumer/cn/service/josp/agc/index.html#/
②用戶操作界面
在 slice 目錄下新建 xxxSlice.java文件,通過(guò) addActionRoute 方法為此 AbilitySlice 配置一條路由規(guī)則,并且在在應(yīng)用配置文件(config.json)中注冊(cè)。
在 resources/base/layout 下新建對(duì)應(yīng) xml 布局文件,在上述兩個(gè)文件中編寫相應(yīng)的 UI。
③軟件數(shù)據(jù)處理
從 slice 獲取 deviceId:在 onStart 中通過(guò)調(diào)用 DeviceID 等,獲取設(shè)備的名稱等方便該軟件識(shí)別設(shè)備。
從 slice 頁(yè)面獲取狀態(tài):開(kāi)關(guān)鎖可以直接調(diào)用 intent.getBooleanParam 來(lái)確定是進(jìn)行開(kāi)關(guān)鎖還是對(duì)門鎖的日程進(jìn)行編排。
④配置設(shè)備端信息
在 entrysrcmainjsdefaultpagesindex 中為主要修改的內(nèi)容:
上圖為項(xiàng)目信息,另外還要看一下手機(jī)應(yīng)用側(cè)的 netconfig 配網(wǎng)模塊。
主要目錄框架分析
開(kāi)發(fā)文件目錄:
`--src `--main |--config.json//應(yīng)用配置文件 |--js |`--default ||--app.js//應(yīng)用程序入口 ||--common//公共資源 |||--ic_back.png |||--icon_faqi.png |||--icon_faxian.png |||--icon_jia_sel.png |||--icon_jian_sel.png |||--icon_jingbao.png |||--icon_liuzhuan.png |||--icon_shuru.png |||--icon_wifi_off.png |||--icon_wifi_on.png ||`--icon_yunxu.png ||--i18n//多語(yǔ)言文件 |||--en-US.json ||`--zh-CN.json |`--pages//存放所有組件頁(yè)面 ||--dm//設(shè)備認(rèn)證界面 |||--dm.css |||--dm.hml ||`--dm.js ||--index//首頁(yè)界面 |||--index.css |||--index.hml ||`--index.js |`--app.js//生命周期管理 `--resources |--base ||--element ||`--string.json |`--media ||--icon.png |`--icon_small.png `--config.json
設(shè)置事件(js)
智能門鎖為案例:
exportdefault{ data:{ isPowerOn:false,//屬性001 isWifi:true,//屬性002 }, onInit(){ setTimeout(()=>{ setInterval(()=>this.GetKey(),500)//事件 },6000); }, clickPower(){ this.isPowerOn=!this.isPowerOn if(this.isPowerOn){ this.SetKey('key_f1','on');//狀態(tài)001 }else{ this.SetKey('key_f1','off');//狀態(tài)002 } }
上面代碼為事件設(shè)置,以智能門鎖為例?;蛘呤怯昧硪环N方法:把 Fa 文檔中和產(chǎn)品對(duì)口的 smart 源碼拷貝到 team_X 中。
華為云注冊(cè)軟件產(chǎn)品
軟件與嵌入式設(shè)備連接原理:
根據(jù)華為云要求注冊(cè)嵌入式設(shè)備與軟件,即可云端提供服務(wù):
上圖表面設(shè)備已經(jīng)在線
服務(wù)卡片開(kāi)發(fā)
①用戶操作界面
通過(guò)桌面可以在卡片中點(diǎn)擊相關(guān)服務(wù),卡片中可以呈現(xiàn)一個(gè)或多個(gè)服務(wù)。
②卡片工作原理
通過(guò)嵌入到 UI 界面拉起那款應(yīng)用的服務(wù)(可以通過(guò)緩存實(shí)現(xiàn)快速打開(kāi))從而起到交互功能的原子化服務(wù)。
③生命周期管理
對(duì)設(shè)備使用方的 RPC 對(duì)象進(jìn)行管理,請(qǐng)求進(jìn)行校驗(yàn)以及對(duì)更新后的進(jìn)行回調(diào)處理。
④卡片尺寸支持
目前官方有四種尺寸,可以在 new 中自己選中喜歡的尺寸。
這里以經(jīng)典開(kāi)發(fā)的音樂(lè)卡片舉例:
創(chuàng)建一個(gè)卡片(這里大小是固定的),然后點(diǎn)擊 finish:
然后就可以看到在原有的 subject 中生成了 config.json 文件。由上圖可得 js 默認(rèn)配置了卡片大小等信息,froms 下的是 ability 中生命周期管理的核心部分(用于回調(diào)),會(huì)在主函數(shù)中實(shí)現(xiàn)調(diào)用。
有是自動(dòng)生成的,要在這里把 false 改成 true。
上圖為 index 下的文件包,可以看到開(kāi)發(fā)者要用的 index 下的三個(gè)文件包,在構(gòu)建好后需要點(diǎn)擊 Deveco Studo 左下角后再點(diǎn)擊 OhosBuild Varinants 對(duì)文件包進(jìn)行簽名。
完成簽名之后在在線調(diào)試的實(shí)驗(yàn)機(jī)器上運(yùn)行后就會(huì)產(chǎn)生一張純的 FA 卡片了,此時(shí)環(huán)境已經(jīng)搭建完畢。
在卡片制作中可以自定義卡片上音樂(lè)播放的圖片等,從 media 直接寫到 hml 中即可。 音樂(lè)本地調(diào)?。簊rc 在 main 下的 resources 中建 rawfile 用于存放音頻,在編譯時(shí)候打包進(jìn) hap 中寫到鴻蒙設(shè)備中即可 get 到。 下面以開(kāi)發(fā) 1*2 的 mini 卡片為例,在本地預(yù)置了音頻文件后我們目光轉(zhuǎn)向卡片,繼續(xù)把播放按鈕與卡片解耦開(kāi),通過(guò) hml 塞入顯示信息等。 isWidget 當(dāng) true 時(shí),card_containerdiv 就會(huì)變?yōu)?div 布局。Ispause 為 true 時(shí),按鈕呈現(xiàn)播放;為 false 時(shí),顯示暫停按鈕。 在 css 文件采用原子布局的 display-index。display-index 的值越大,則越優(yōu)先顯示。 在 main 中的 onCreateForm 里 isMiniWidget 的 data 設(shè)置為 true。 在.json 和 main 中相對(duì)應(yīng)的地方添加點(diǎn)擊事件,到此為止就可以通過(guò)點(diǎn)擊卡片就可以得到播放與暫停的互動(dòng)了。 做完顯示界面以后,接入界面與預(yù)先本地的音頻,然后封裝音樂(lè)播放即可。
下面是生命周期的部分布置和實(shí)現(xiàn):
更新(onUpdateForm),卡片更新與持久化儲(chǔ)存卡片,定時(shí)更新與請(qǐng)求更新時(shí)進(jìn)行調(diào)用。
刪除(onDeleteForm),用于刪除卡片時(shí)調(diào)用。
事件消息(message),formid&massage,接收通知。 一張 Fa 卡片創(chuàng)建時(shí)需要滿足的基本功能:布局加載–請(qǐng)求數(shù)據(jù)(ohos&intent)–產(chǎn)生卡片(long&生成 ID 用于調(diào)用){通過(guò)枚舉值得到}。按照以上步驟一個(gè)音樂(lè)服務(wù)卡片就完成了。 ?
簽名與編譯
最后開(kāi)發(fā)完在開(kāi)發(fā)完成之后我們要對(duì)文件進(jìn)行簽名即可:
Alias:密鑰的名稱信息,用于簽名的配置。
Password:密鑰的密碼(系統(tǒng)自動(dòng)填入)
Certificate:證書的具體信息、名稱、組織與國(guó)家代碼等等
上圖為新建簽名密鑰 我們點(diǎn)擊 new 然后新建密鑰包,并且輸入密碼等信息進(jìn)行生成。 注意:這里的密碼必須由大小寫和數(shù)字與符號(hào)組成以保證安全性。
另外一種簽名方式:
應(yīng)用調(diào)試助手:通過(guò)華為應(yīng)用市場(chǎng)下載應(yīng)用調(diào)試助手,點(diǎn)擊并申請(qǐng) Product ID 并選擇。
再根據(jù) APPGallery Connect 的指示完成頁(yè)面填寫后手機(jī)貼近 NFC 擴(kuò)展板或 NFC 射頻貼紙點(diǎn)擊<置入緩存區(qū)即可>。
上圖要注意申請(qǐng) Product ID 開(kāi)發(fā)完成之后點(diǎn)擊選中華為實(shí)驗(yàn)室遠(yuǎn)程真機(jī)可以在線調(diào)試進(jìn)行軟件開(kāi)發(fā)實(shí)驗(yàn),如需手機(jī)實(shí)驗(yàn)請(qǐng)點(diǎn)擊手機(jī)版本號(hào)七次進(jìn)入開(kāi)發(fā)者模式(會(huì)有您正處于開(kāi)發(fā)者模式的提醒)。 然后我們找到設(shè)置的系統(tǒng)與更新的開(kāi)發(fā)者人員調(diào)試選項(xiàng)打開(kāi) USB 調(diào)試即可,當(dāng)手機(jī)與電腦通過(guò)數(shù)據(jù)線連接時(shí)會(huì)出現(xiàn)彈窗,選擇連接方式為傳輸文件。 以上就是基礎(chǔ) HarmonyOS 的基礎(chǔ)教程內(nèi)容,感謝各位的支持。
-
華為
+關(guān)注
關(guān)注
216文章
34909瀏覽量
254604 -
ui
+關(guān)注
關(guān)注
0文章
206瀏覽量
21621 -
鴻蒙
+關(guān)注
關(guān)注
57文章
2469瀏覽量
43642 -
HarmonyOS
+關(guān)注
關(guān)注
79文章
2005瀏覽量
31800 -
OpenHarmony
+關(guān)注
關(guān)注
26文章
3804瀏覽量
17853
原文標(biāo)題:OpenHarmony上開(kāi)發(fā)“服務(wù)卡片”
文章出處:【微信號(hào):gh_834c4b3d87fe,微信公眾號(hào):OpenHarmony技術(shù)社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
鴻蒙OS開(kāi)發(fā)實(shí)例:【手?jǐn)]服務(wù)卡片】
![鴻蒙OS<b class='flag-5'>開(kāi)發(fā)</b>實(shí)例:【手?jǐn)]<b class='flag-5'>服務(wù)</b><b class='flag-5'>卡片</b>】](https://file1.elecfans.com/web2/M00/C7/0B/wKgaomYFdeqAZW74ABvHzjRkbFM685.jpg)
OpenHarmony開(kāi)發(fā)案例:【計(jì)步器卡片】

OpenHarmony開(kāi)發(fā)案例:【電影卡片】

一文看懂HarmonyOS服務(wù)卡片運(yùn)行原理和開(kāi)發(fā)方法
HarmonyOS原子化服務(wù)卡片開(kāi)發(fā)-主要過(guò)程梳理
HarmonyOS卡片開(kāi)發(fā)--服務(wù)卡片概述
HarmonyOS與OpenHarmony應(yīng)用開(kāi)發(fā)差異
HarmonyOS/OpenHarmony應(yīng)用開(kāi)發(fā)-FA卡片開(kāi)發(fā)體驗(yàn)
HarmonyOS/OpenHarmony元服務(wù)開(kāi)發(fā)-配置卡片的配置文件
用Java開(kāi)發(fā)HarmonyOS服務(wù)卡片
OpenHarmony原子化服務(wù)開(kāi)發(fā)快速入門體驗(yàn)(上)

如何在OpenHarmony開(kāi)源代碼基礎(chǔ)上實(shí)現(xiàn)數(shù)字管家開(kāi)發(fā)宿舍全屋智能
HarmonyOS 3.1上實(shí)現(xiàn)計(jì)步卡片
OpenHarmony上使用服務(wù)卡片

評(píng)論