




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第十一章HarmonyOS原子化服務武漢大學計算機學院趙小剛緒論在萬物互聯(lián)時代,人均持有設備量不斷攀升,設備和場景的多樣性,使應用開發(fā)變得更加復雜、應用入口更加豐富。在此背景下,應用提供方和用戶迫切需要一種新的服務提供方式,使應用開發(fā)更簡單、服務(如聽音樂、打車等)的獲取和使用更便捷。為此,HarmonyOS除支持傳統(tǒng)方式的需要安裝的應用外,還支持提供特定功能的免安裝的應用(即原子化服務)。目錄原子化服務定義原子化服務體驗原子化服務開發(fā)基礎原子化服務開發(fā)進階原子化服務分享原子化服務定義原子化服務是HarmonyOS提供的一種面向未來的服務提供方式,是有獨立入口的(用戶可通過點擊方式直接觸發(fā))、免安裝的(無需顯式安裝,由系統(tǒng)程序框架后臺安裝后即可使用)、可為用戶提供一個或多個便捷服務的用戶應用程序形態(tài)。原子化服務由1個或多個HAP包組成,1個HAP包對應1個FA或1個PA。每個FA或PA均可獨立運行,完成1個特定功能;1個或多個功能(對應FA或PA)完成1個特定的便捷服務。原子化服務特性隨處可及服務發(fā)現(xiàn):原子化服務可在服務中心發(fā)現(xiàn)并使用。智能推薦:原子化服務可以基于合適場景被主動推薦給用戶使用,或在服務中心發(fā)現(xiàn)。服務直達原子化服務支持免安裝使用。服務卡片:支持用戶無需打開原子化服務便可獲取服務內(nèi)重要信息的展示和動態(tài)變化??缭O備原子化服務支持運行在1+8+N設備上,如手機、平板等設備。支持跨設備分享:例如接入華為分享后,用戶可分享原子化服務給好友支持跨端遷移和協(xié)同原子化服務體驗原子化服務定義原子化服務體驗原子化服務開發(fā)基礎原子化服務開發(fā)進階原子化服務分享原子化服務體驗
服務中心原子化服務流轉(zhuǎn)原子化服務分享服務中心服務中心為用戶提供統(tǒng)一的原子化服務查看、搜索、收藏和管理功能。原子化服務流轉(zhuǎn)
原子化服務流轉(zhuǎn)的觸發(fā)方式有系統(tǒng)推薦流轉(zhuǎn)和用戶手動流轉(zhuǎn)。系統(tǒng)推薦流轉(zhuǎn):用戶使用應用程序時,所處環(huán)境中存在使用體驗更優(yōu)的可選設備,則系統(tǒng)自動為用戶推薦該設備,用戶可確認是否啟動流轉(zhuǎn)。原子化服務流轉(zhuǎn)
用戶手動流轉(zhuǎn):用戶可以手動選擇合適的設備進行流轉(zhuǎn)。用戶點擊圖標后,會調(diào)起系統(tǒng)提供的流轉(zhuǎn)面板。面板中會展示出用戶應用程序的信息及可流轉(zhuǎn)的設備,引導用戶進行后續(xù)的流轉(zhuǎn)操作。原子化服務流轉(zhuǎn)流轉(zhuǎn)的技術(shù)方案跨端遷移:指在A端運行的用戶應用程序,遷移到B端上并從遷移時刻A端狀態(tài)繼續(xù)運行,然后A端用戶應用程序退出。多端協(xié)同:指多端上的不同F(xiàn)A/PA同時運行、或者接替運行實現(xiàn)完整的業(yè)務;或者,多端上的相同F(xiàn)A/PA同時運行實現(xiàn)完整的業(yè)務。原子化服務分享通過分享的方式,將原子化服務分享到其它設備上,用戶確認后可直接免安裝啟動服務。用戶可在原子化服務內(nèi)選擇分享,打開“華為分享”開關(guān)后,將原子化服務分享給附近同樣打開了“華為分享”開關(guān)的好友,好友點擊確認后直接啟動服務。新浪新聞服務分享原子化服務開發(fā)基礎原子化服務定義原子化服務體驗原子化服務開發(fā)基礎原子化服務開發(fā)進階原子化服務分享原子化開發(fā)基礎開發(fā)總體要求服務卡片定義運作機制卡片提供方主要回調(diào)JS卡片語法基礎開發(fā)總體要求免安裝的HAP包不能超過10MB,以提供快速響應的體驗。超過此大小的HAP包不符合免安裝要求,也無法在服務中心露出。通過DevEcoStudio工程向?qū)?chuàng)建原子化服務,ProjectType字段選擇“Service”。對于原子化服務升級場景:版本更新時要保持免安裝屬性。如果新版本不支持免安裝,將不允許新版本上架發(fā)布。HarmonyOS2.0以上版本。開發(fā)總體要求
如果某便捷服務的入口需要在服務中心露出,則該服務對應HAP包必須包含F(xiàn)A,且FA中必須指定一個唯一的mainAbility(定位為用戶操作入口),mainAbility必須為PageAbility。同時,mainAbility中至少配置2*2(小尺寸)規(guī)格的默認服務卡片(也可以同時提供其他規(guī)格的卡片)及該便捷服務對應的基礎信息(包括圖標、名稱、描述、快照),這些內(nèi)容均在config.json中的ability對象中進行定義。"name":"com.whu.myapplicationjscard.MainAbility","icon":"$media:icon","description":"$string:mainability_description","formsEnabled":true,"label":"$string:entry_MainAbility","type":"page",服務卡片定義服務卡片(以下簡稱“卡片”)是FA的一種界面展示形式,將FA的重要信息或操作前置到卡片,以達到服務直達,減少體驗層級的目的。卡片常用于嵌入到其他應用(當前只支持系統(tǒng)應用)中作為其界面的一部分顯示,并支持拉起頁面,發(fā)送消息等基礎的交互功能。服務卡片包含以下三部分:卡片提供方:提供卡片顯示內(nèi)容的HarmonyOS應用或原子化服務,控制卡片的顯示內(nèi)容、控件布局以及控件點擊事件??ㄆ褂梅剑猴@示卡片內(nèi)容的宿主應用,控制卡片在宿主中展示的位置。卡片管理服務:用于管理系統(tǒng)中所添加卡片的常駐代理服務,包括卡片對象的管理與使用,以及卡片周期性刷新等。運作機制卡片提供方主要回調(diào)函數(shù)JS卡片語法基礎數(shù)據(jù)綁定:JS頁面中的數(shù)據(jù)綁定是體現(xiàn)在.js文件中,而JS卡片中的數(shù)據(jù)綁定是體現(xiàn)到.json文件中,這是最主要區(qū)別。事件綁定:卡片僅支持click通用事件,事件的定義只能是直接命令式,事件定義必須包含action字段,用以說明事件類型。卡片支持兩種事件類型:跳轉(zhuǎn)事件(router)和消息事件(message)。跳轉(zhuǎn)事件可以跳轉(zhuǎn)到卡片提供方的應用;消息事件可以將開發(fā)者自定義信息傳遞給卡片提供方。跳轉(zhuǎn)事件中若定義了params字段,則在被拉起應用的onStart()回調(diào)的intent參數(shù)中,可用"params"作為key將跳轉(zhuǎn)事件定義的params字段的值取到。原子化服務開發(fā)進階原子化服務定義原子化服務體驗原子化服務開發(fā)基礎原子化服務開發(fā)進階原子化服務分享原子化服務開發(fā)進階卡片結(jié)構(gòu)目錄卡片資源訪問卡片配置文件卡片實戰(zhàn)卡片結(jié)構(gòu)目錄卡片資源訪問卡片中的資源訪問分為三類:JS模塊資源,應用資源和系統(tǒng)資源。應用資源在卡片工程的css文件中,通過“@app.type.resource_id”的形式引用應用資源;在hml和json文件中,通過“{{$r('app.type.resource_id')}}”的形式引用應用資源,各個字段的含義與css文件相同。系統(tǒng)資源在hml/css/json文件中,可以引用系統(tǒng)預置資源,包括顏色、圓角和圖片類型的資源。在卡片工程的css文件中,通過“@sys.type.resource_id”的形式引用系統(tǒng)資源。資源引用示例<divclass="container-inner"><textclass="title"style="background-color:{{$r('app.color.my_background_color')}}">{{$t('strings.title')}}</text><textclass="detail_text"style="background-color:{{$r('app.color.my_foreground_color')}}">{{$t('strings.detail')}}</text></div>{"color":[{"name":"my_background_color","value":"#ffff0000"},{"name":"my_foreground_color","value":"#ff0000ff"}]}卡片配置文件創(chuàng)建成功后,在config.json的module中會生成js模塊,用于對應卡片的js相關(guān)資源。"js":[{"pages":["pages/index/index"],"name":"widget","window":{"designWidth":720,"autoDesignWidth":true},"type":"form"}]"forms":[{"jsComponentName":"widget","isDefault":true,"scheduledUpdateTime":"10:30","defaultDimension":"2*2","name":"widget","description":"Thisisaservicewidget","colorMode":"auto","type":"JS","supportDimensions":["2*2"],"updateEnabled":true,"updateDuration":1}],"launchType":"standard"}],卡片實戰(zhàn)新建卡片卡片內(nèi)容刷新卡片頁面跳轉(zhuǎn)卡片消息傳遞卡片事件觸發(fā)新建卡片卡片信息配置卡片內(nèi)容刷新updateForm(updateFormId,newFormBindingData(zsonObject))卡片頁面跳轉(zhuǎn)在前面clock1x2卡片的頁面布局文件的第一行中,我們定義了一個點擊事件:<divclass="container"onclick="routerEvent">該事件會激發(fā)json文件中的routerEvent回調(diào)事件,定義在action對象中"actions":{"routerEvent":{"action":"router","bundleName":"ohos.samples.jsfacard","abilityName":"ohos.samples.jsfacard.ClockAbility","params":{"message":"adddetail"}}卡片消息傳遞在.hml文件中定義onclick事件<divclass="container"onclick="activeEvent">json文件中定義actions{"data":{},"actions":{"activeEvent":{"action":"message","bundleName":"ohos.samples.jsfacard","abilityName":"ohos.samples.jsfacard.MainAbility","params":{"message":"jscardtemplateadddetail"}}}}@OverrideprotectedvoidonTriggerFormEvent(longformId,Stringmessage){LogU(TAG,"onTriggerFormEvent:messgeage="+message);super.onTriggerFormEvent(formId,message);
}卡片事件觸發(fā)卡片事件的觸發(fā)是指在卡片中的點擊事件引發(fā)卡片上數(shù)據(jù)的變化,該過程就等于卡片消息傳遞+卡片內(nèi)容刷新。<imagesrc="/common/{{status}}.svg"onclick="messageEvent"class="status-image"></image>@OverrideprotectedvoidonTriggerFormEvent(longformId,Stringmessage){ZSONObjectzsonObject=newZSONObject();if(isStatus){zsonObject.put(STATUS,PAUSE);isStatus=false;}else{zsonObject.put(STATUS,PLAY);isStatus=true;}FormBindingDataformBindingData=newFormBindingData(zsonObject);updateForm(formId,formBindingData);}原子化服務分享
原子化服務定義原子化服務體驗原子化服務開發(fā)基礎原子化服務開發(fā)進階原子化服務分享原子化服務分享原子化服務所提供的便捷服務,可以通過接入華為分享實現(xiàn)近距離快速分享,使便捷服務可以精準快速的推送至接收方,降低用戶觸達服務的成本,提升用戶體驗。相比于傳統(tǒng)的社交軟件分享接收方無需提前安裝承載服務的安裝包,即可享受原生的服務體驗。一般是服務端使用ServiceStub接口,客戶端使用CallbackProxy接口,即“代理-樁”模式。服務分享方為服務端,服務接收方為客戶端。開發(fā)步驟1.集成IDL接口,用于建立分享方與華為分享的交互通道,完成后續(xù)服務分享過程。創(chuàng)建IAbilityConnection連接2.在java目錄的應用包下創(chuàng)建ShareFaManager類,用于管理分享方與華為分享的連接通道和數(shù)據(jù)交互。publicclassShareFaManager{privatefinalIAbilityConnectionmConnection=newIAbilityConnection(){@OverridepublicvoidonAbilityConnectDone(ElementNameelementName,IRemoteObjectiRemoteObject,inti){mHandler.postTask(()->{mShareService=newHwShareServiceProxy(iRemoteObject);}}@OverridepublicvoidonAbilityDisconnectDone(ElementNameelementName,inti){}}privatefinalHwShareCallbackStubmFaCallback=newHwShareCallbackStub("HwShareCallbackStub"){@OverridepublicvoidnotifyState(intstate)throwsRemoteException{mHandler.postTask(()->{if(mSharePacMap!=null){shareFaInfo();}}}publicstaticsynchronizedShareFaManagergetInstance(Contextcontext){}分享卡片&啟動應用publicvoidshareFaInfo(StringappId,PacMapExpacMap){mAppId=appId;mSharePacMap=pacMap;mHandler.removeTask(mTask);shareFaInfo();bindShareService();}privatevoidbindShareService(){Intentintent=newIntent();Operationoperation=newIntent.OperationBuilder().withDeviceId("").withBundleName(SHARE_PKG_NAME).withAction(SHARE_ACTION).withFlags(Intent.FLAG_NOT_OHOS_COMPONENT).build();intent.setOperation(operation);mContext.connectAbility(intent,mConnection);}封裝分
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電能表的電網(wǎng)能效提升技術(shù)發(fā)展策略研究考核試卷
- 市場調(diào)查在人力資源行業(yè)的應用考核試卷
- 稀土金屬壓延加工質(zhì)量成本控制方法考核試卷
- 漁業(yè)與食品安全體系的協(xié)同管理考核試卷
- 祛痰護理在氣道管理中的重要作用 2
- 一例主動脈夾層患者護理個案匯報 3
- 武漢晴川學院《定量遙感算法》2023-2024學年第二學期期末試卷
- 山東藥品食品職業(yè)學院《中國哲學概論》2023-2024學年第一學期期末試卷
- 遼寧師范大學《經(jīng)濟管理》2023-2024學年第二學期期末試卷
- 廈門理工學院《大眾流行健身操》2023-2024學年第二學期期末試卷
- 寵物輸液治療技術(shù)-靜脈輸液療法(寵物臨床治療課件)
- 豬白條購銷合同范本
- 鍋爐延期檢驗申請書
- 部編版道德與法治三年級下冊第三單元《我們的公共生活》大單元作業(yè)設計案例(一)
- 機械設計手冊:單行本 液壓傳動(第六版)
- 紅色故事宣講《小蘿卜頭的故事》
- 活動板房拆裝合同模板范本
- GPS在森林調(diào)查中的應用-手持GPS在森林調(diào)查中的應用(森林調(diào)查技術(shù))
- 直接打印800字作文紙
- 武漢市軌道交通一號線某期工程土建施工投標施工組織設計
- 2023年科技特長生招生考試試卷word
評論
0/150
提交評論