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

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

評論