自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

一文看懂HarmonyOS服務(wù)卡片運(yùn)行原理和開發(fā)方法

開發(fā) 前端 OpenHarmony
本文整體介紹了HarmonyOS服務(wù)卡片的運(yùn)行原理和開發(fā)方法,服務(wù)卡片運(yùn)行過程中主要是卡片管理服務(wù)作為中間樞紐,連接著卡片使用方和卡片提供方。

[[407024]]

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

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

https://harmonyos.51cto.com

服務(wù)卡片概述

1、什么是服務(wù)卡片

HarmonyOS 2的到來,讓很多開發(fā)者眼前一亮。HarmonyOS 2推出的服務(wù)卡片,是FA(Feature Ability)的界面展現(xiàn)形式,將FA的重要信息或者操作前置到卡片上,以達(dá)到服務(wù)直達(dá)的目的。

卡片實(shí)際界面如下圖所示。

一文看懂HarmonyOS服務(wù)卡片運(yùn)行原理和開發(fā)方法-鴻蒙HarmonyOS技術(shù)社區(qū)

圖1 具有服務(wù)卡片的桌面

如圖所示,桌面上混合著服務(wù)卡片和應(yīng)用圖標(biāo)。如上面的天氣服務(wù)卡片,展示了多時(shí)段天氣;運(yùn)動(dòng)健康的服務(wù)卡片,展示了運(yùn)動(dòng)步數(shù)等重要信息。如果應(yīng)用圖標(biāo)下方有提示條,則表示該應(yīng)用嵌有服務(wù)卡片,可以通過手指在該圖標(biāo)上滑呼出服務(wù)卡片,如上圖的天氣、圖庫、運(yùn)動(dòng)健康、備忘錄等,均可以上滑圖標(biāo)呼出服務(wù)卡片。

服務(wù)卡片有三個(gè)特征:易用可見、智能可選和多端可變。

易用可見:凸顯服務(wù)信息的內(nèi)容外露,減少層級(jí)跳轉(zhuǎn)。

智能可選:全天可變的數(shù)據(jù)信息,支持自定義類型的服務(wù)卡片設(shè)計(jì)。

多端可變:適配多端設(shè)備的自適應(yīng)屬性。

2、服務(wù)卡片設(shè)計(jì)規(guī)范

數(shù)量選擇

【每個(gè)應(yīng)用均能配置多個(gè)服務(wù)卡片,但是每個(gè)Page Ability配置的服務(wù)卡片總數(shù)不能超過16個(gè)】

例如:一個(gè)天氣的應(yīng)用可以制作當(dāng)?shù)靥鞖?、多時(shí)段天氣、多天天氣、穿衣提醒等不同內(nèi)容的卡片信息,但如果將這些卡片配置在同一個(gè)Page Ability上,總數(shù)量不可以超過16個(gè)。

【每個(gè)服務(wù)卡片可以選擇4種服務(wù)卡片尺寸】

例如:系統(tǒng)為每個(gè)應(yīng)用提供4種尺寸規(guī)格以供選擇,小尺寸的卡片尺寸為必選項(xiàng)。

【每個(gè)服務(wù)卡片被用戶使用時(shí)可以創(chuàng)建多個(gè)實(shí)例】

例如:用戶手動(dòng)添加了當(dāng)?shù)靥鞖獾姆?wù)卡片,可以通過對(duì)單個(gè)服務(wù)卡片的重復(fù)添加來實(shí)現(xiàn)多個(gè)實(shí)例。

尺寸選擇

每個(gè)應(yīng)用在選擇服務(wù)卡片時(shí),按需選擇對(duì)應(yīng)尺寸,保證內(nèi)容效益最大化。

服務(wù)卡片尺寸分為:微(1×2)、小( 2×2 )、中( 2×4 )、大(4×4)4種尺寸,其中小尺寸為必選尺寸。

同一種尺寸還支持多個(gè)不同內(nèi)容布局的卡片,可以通過服務(wù)卡片管理界面進(jìn)行選擇,應(yīng)用方可以指定某一個(gè)服務(wù)卡片作為默認(rèn)展示。

【微尺寸】

一文看懂HarmonyOS服務(wù)卡片運(yùn)行原理和開發(fā)方法-鴻蒙HarmonyOS技術(shù)社區(qū)

圖2 微尺寸服務(wù)卡片

微尺寸卡片能提供簡(jiǎn)單的數(shù)據(jù)信息,快捷指令和快捷入口。比如一個(gè)音樂應(yīng)用可以提供一個(gè)微尺寸卡片,僅展示歌曲名字和歌手名字,以及歌曲縮略圖,運(yùn)動(dòng)健康展示步數(shù)數(shù)據(jù),行程信息提供航班號(hào)和登機(jī)時(shí)間等。

【小尺寸】

一文看懂HarmonyOS服務(wù)卡片運(yùn)行原理和開發(fā)方法-鴻蒙HarmonyOS技術(shù)社區(qū)

圖3 小尺寸服務(wù)卡片

小尺寸卡片能提供精簡(jiǎn)的服務(wù)信息內(nèi)容、豐富的展示特性信息、即時(shí)信息或操作提示等。比如行程信息除了提供航班信息,還提供了查看詳情的操作。

【中尺寸和大尺寸】

一文看懂HarmonyOS服務(wù)卡片運(yùn)行原理和開發(fā)方法-鴻蒙HarmonyOS技術(shù)社區(qū)

圖4 中尺寸服務(wù)卡片

一文看懂HarmonyOS服務(wù)卡片運(yùn)行原理和開發(fā)方法-鴻蒙HarmonyOS技術(shù)社區(qū)

圖5 大尺寸服務(wù)卡片

中尺寸和大尺寸卡片能提供兩種以上緯度的服務(wù)信息展示和多個(gè)可交互的熱區(qū)展示,展示更加沉浸豐富的視覺圖片以及采用多個(gè)宮格和列表內(nèi)容展示。比如運(yùn)動(dòng)健康采用中尺寸卡片展示了步數(shù)和運(yùn)動(dòng)強(qiáng)度兩個(gè)緯度的信息。玩機(jī)技巧采用宮格方式推薦了多個(gè)應(yīng)用入口。

內(nèi)容構(gòu)成

服務(wù)卡片由多種設(shè)計(jì)元素組合而成,以下7種常見信息元素可以作為內(nèi)容選擇:

圖標(biāo)、數(shù)據(jù)、文本、按鈕、圖片、宮格、列表

在組織服務(wù)卡片內(nèi)容的時(shí)候可以按照尺寸的大小來判斷應(yīng)當(dāng)選擇哪種元素,包括元素組合的數(shù)量。

一文看懂HarmonyOS服務(wù)卡片運(yùn)行原理和開發(fā)方法-鴻蒙HarmonyOS技術(shù)社區(qū)

圖6 卡片尺寸和元素對(duì)應(yīng)關(guān)系圖

如上圖所示,對(duì)于微尺寸卡片,建議卡片上內(nèi)容元素不超過2種,可以在“圖標(biāo)、數(shù)據(jù)、文本、圖片”中選擇最多兩種元素進(jìn)行組合,以達(dá)內(nèi)容收益盡可能多且不顯得繁雜。對(duì)于小尺寸卡片,建議卡片上的內(nèi)容不超過3種,可以在“圖標(biāo)、數(shù)據(jù)、文本、按鈕、圖片”中選擇最多3種元素進(jìn)行組合。中/大尺寸卡片可根據(jù)業(yè)務(wù)需要自由選擇。

服務(wù)卡片運(yùn)行機(jī)制

1、服務(wù)卡片整體框架

服務(wù)卡片整體框架主要包含三部分:卡片使用方、卡片管理服務(wù)和卡片提供方。

● 卡片使用方

顯示卡片內(nèi)容的宿主應(yīng)用,控制卡片在宿主中展示的位置,如桌面、服務(wù)中心、搜索等。

● 卡片管理服務(wù)

用于管理系統(tǒng)中所添加卡片的常駐代理服務(wù),包括卡片對(duì)象的管理與使用,以及卡片周期性刷新等。

● 卡片提供方

提供卡片顯示內(nèi)容的HarmonyOS應(yīng)用或原子化服務(wù),控制卡片的顯示內(nèi)容、控件布局以及控件點(diǎn)擊事件。

圖7 服務(wù)卡片整體框架

說明

卡片使用方和提供方不要求常駐運(yùn)行,在需要添加/刪除/請(qǐng)求更新卡片時(shí),卡片管理服務(wù)會(huì)拉起卡片提供方獲取卡片信息。

當(dāng)卡片主動(dòng)刷新時(shí)候,具體流程如下:

  1. 當(dāng)卡片使用方如“桌面”,呼出服務(wù)卡片時(shí),通過Java kit中的SDK客戶端向卡片管理服務(wù)請(qǐng)求卡片對(duì)象。
  2. 卡片管理服務(wù)會(huì)檢查其緩存管理模塊是否存在該卡片對(duì)象實(shí)例,如果存在,則會(huì)立即返回該卡片對(duì)象給卡片使用方;
  3. 如果不存在,則會(huì)通過卡片提供方kit,向卡片提供方索取該卡片數(shù)據(jù),并生成卡片對(duì)象;
  4. 卡片管理服務(wù)會(huì)拉起服務(wù)卡片F(xiàn)A,回調(diào)刷新函數(shù)更新卡片數(shù)據(jù),并將刷新數(shù)據(jù)返回給卡片管理服務(wù);
  5. 卡片管理服務(wù)會(huì)檢查是否存在卡片使用方宿主,存在則會(huì)將卡片提供方數(shù)據(jù)刷新到卡片使用方宿主實(shí)例緩存中,不存在則可能是系統(tǒng)異常無法刷新;
  6. 卡片管理服務(wù)通過服務(wù)接口將卡片數(shù)據(jù)傳到卡片使用方(如“桌面”),宿主應(yīng)用界面顯示數(shù)據(jù)。
一文看懂HarmonyOS服務(wù)卡片運(yùn)行原理和開發(fā)方法-鴻蒙HarmonyOS技術(shù)社區(qū)

圖8 服務(wù)卡片主動(dòng)刷新流程圖

當(dāng)卡片定時(shí)/定點(diǎn)刷新時(shí)候,具體流程如下:

  1. 當(dāng)一個(gè)服務(wù)卡片在config.json中配置了定時(shí)或者定點(diǎn)刷新時(shí),timer事件會(huì)通知卡片管理服務(wù);
  2. 卡片管理服務(wù)會(huì)去卡片提供方對(duì)象管理模塊中找到對(duì)應(yīng)的卡片提供方;通過卡片提供方kit,回調(diào)卡片提供方的刷新函數(shù),卡片提供方刷新數(shù)據(jù)返回給卡片管理服務(wù)。
  3. 卡片管理服務(wù)根據(jù)卡片名稱查找卡片使用方宿主,并刷新卡片使用方宿主對(duì)象緩存數(shù)據(jù)。
  4. 接著通過服務(wù)接口將卡片數(shù)據(jù)傳到卡片使用方中,宿主應(yīng)用界面顯示數(shù)據(jù)。
一文看懂HarmonyOS服務(wù)卡片運(yùn)行原理和開發(fā)方法-鴻蒙HarmonyOS技術(shù)社區(qū)

圖9 服務(wù)卡片定時(shí)/定點(diǎn)刷新流程圖

服務(wù)卡片根據(jù)開發(fā)方式可以分為Java服務(wù)卡片和JS服務(wù)卡片,Java服務(wù)卡片返回的實(shí)例采用ComponentProvider方式顯示在服務(wù)卡片使用方上,JS服務(wù)卡片是通過ACE引擎加載和解析hap包的卡片資源,如hml、css和config.json文件,解析引擎解析完hml和css后進(jìn)行渲染,結(jié)合數(shù)據(jù)生成InstantView顯示在服務(wù)卡片使用方指定的位置上。

2、服務(wù)卡片生命周期回調(diào)函數(shù)

卡片提供方控制卡片實(shí)際顯示的內(nèi)容、控件布局以及控件點(diǎn)擊事件。應(yīng)用或原子化服務(wù)想要成為一個(gè)卡片提供方,需要實(shí)現(xiàn)卡片相關(guān)的回調(diào)函數(shù):

服務(wù)卡片關(guān)鍵回調(diào)函數(shù)如下:

一文看懂HarmonyOS服務(wù)卡片運(yùn)行原理和開發(fā)方法-鴻蒙HarmonyOS技術(shù)社區(qū)

服務(wù)卡片生命周期回調(diào)函數(shù)時(shí)序如下:

一文看懂HarmonyOS服務(wù)卡片運(yùn)行原理和開發(fā)方法-鴻蒙HarmonyOS技術(shù)社區(qū)

圖10 服務(wù)卡片生命周期回調(diào)函數(shù)時(shí)序圖

卡片管理服務(wù)不負(fù)責(zé)卡片應(yīng)用進(jìn)程?;?,卡片管理服務(wù)在相應(yīng)的時(shí)機(jī)拉起卡片提供方進(jìn)程,調(diào)用創(chuàng)建、更新、刪除卡片等回調(diào)。

服務(wù)卡片開發(fā)過程

下面以JS服務(wù)卡片開發(fā)為例,介紹服務(wù)卡片的開發(fā)過程。

1、服務(wù)卡片開發(fā)環(huán)境

華為近期發(fā)布了最新的HarmonyOS IDE版本:DevEco Studio 2.1 Release,該版本已經(jīng)支持了服務(wù)卡片的開發(fā)。DevEco Studio 開發(fā)卡片環(huán)境如下圖所示:

圖11 DevEco Studio 開發(fā)卡片環(huán)境圖

【創(chuàng)建服務(wù)卡片項(xiàng)目步驟】

1.新建一個(gè)Project,根據(jù)項(xiàng)目需要選擇JS或者Java的項(xiàng)目模板,建議選擇JS項(xiàng)目工程。

2.在“Configure your project”中,打開“Show In Service Center”,表示在服務(wù)中心中展示。

圖12 DevEco Studio 開發(fā)卡片設(shè)置圖

3.Finish之后就能創(chuàng)建一個(gè)帶有服務(wù)卡片的項(xiàng)目。

說明

如果在步驟1中采用Java項(xiàng)目,則默認(rèn)創(chuàng)建Java服務(wù)卡片,如果采用JS項(xiàng)目,則默認(rèn)創(chuàng)建JS服務(wù)卡片。

詳細(xì)創(chuàng)建項(xiàng)目過程可以參考官網(wǎng)資料【開發(fā)服務(wù)卡片】。

● 開發(fā)服務(wù)卡片

https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ide_service_widget-0000001078566997

2、JS服務(wù)卡片開發(fā)過程

JS服務(wù)卡片開發(fā)主要分為四步:

配置config.json

實(shí)現(xiàn)生命周期回調(diào)方法

開發(fā)卡片界面元素

實(shí)現(xiàn)卡片界面交互

1.配置config.json

config.json整體結(jié)構(gòu)

采用DevEco Studio創(chuàng)建帶有服務(wù)卡片的Project之后,會(huì)生成下面的config.json的配置文件。

一文看懂HarmonyOS服務(wù)卡片運(yùn)行原理和開發(fā)方法-鴻蒙HarmonyOS技術(shù)社區(qū)

圖13 config.json文件內(nèi)容

如上圖所示,config.json文件是項(xiàng)目創(chuàng)建之后生成的配置文件,其中”js”配置了兩個(gè)json對(duì)象,第一個(gè)name屬性值為”default”是JS UI的界面配置。name屬性值為“service_widget”的是服務(wù)卡片的配置,type的屬性值是form表示該JS配置是一個(gè)服務(wù)卡片。

JS服務(wù)卡片的工程目錄如下:

一文看懂HarmonyOS服務(wù)卡片運(yùn)行原理和開發(fā)方法-鴻蒙HarmonyOS技術(shù)社區(qū)

圖14 JS服務(wù)卡片工程目錄圖

● common目錄主要存放公共資源;

● i18n目錄是存放國際化資源;

● pages.index目錄(實(shí)際是pages/index)存放服務(wù)卡片界面開發(fā)主要文件,里面采用hml+css+json文件組合,構(gòu)成JS服務(wù)卡片界面。

config.json中abilities配置forms細(xì)節(jié)

在abilities的json配置中,配置了forms屬性值,如下圖所示:

圖15 forms屬性值配置

forms配置在哪個(gè)Ability上,服務(wù)卡片聲明周期回調(diào)方法就會(huì)在哪個(gè)Ability上回調(diào)執(zhí)行。

● formsEnable的值若設(shè)置為true,則表示該Ability支持服務(wù)卡片顯示。

● forms的值是一個(gè)json 數(shù)組,表示可配置多張服務(wù)卡片。

● jsComponentName是JS服務(wù)卡片名字,僅JS服務(wù)卡片上需要配置(Java卡片不需要配置),其名字需要和js配置的name一致,表示js組件實(shí)例。

● isDefault為true表示該卡片是一個(gè)默認(rèn)卡片。Ability可以配置多張服務(wù)卡片,其中僅有一張是默認(rèn)卡片,即在圖標(biāo)上滑呼出的卡片。

● scheduledUpdateTime表示卡片定時(shí)/定點(diǎn)觸發(fā)更新的時(shí)間。

● defaultDimension表示默認(rèn)卡片的尺寸是22,其他的可選12,24,44尺寸。對(duì)于需要在服務(wù)中心露出的卡片,默認(rèn)規(guī)格必須設(shè)置成2*2。

● type表示服務(wù)卡片類型,有JS和Java兩種,本次配置選擇為JS。

● updateDuration表示服務(wù)卡片刷新的時(shí)間間隔,以30min作為單位,1表示30min,2表示1個(gè)小時(shí),以此類推。

forms的其他屬性參考官網(wǎng)資料【服務(wù)卡片-JS卡片開發(fā)】。

● 服務(wù)卡片-JS卡片開發(fā)

https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ability-service-widget-provider-js-0000001150602175

配置卡片編輯功能(可選功能)

有些服務(wù)卡片需要具備可編輯能力,如天氣App需要編輯所在城市。具體實(shí)現(xiàn)方法如下:

在config.json中,對(duì)某一個(gè)form的配置增加formConfigAbility的屬性配置,可實(shí)現(xiàn)編輯功能。formConfigAbility的值是一個(gè)url格式的Ability名稱。若不配置formConfigAbility,則不顯示編輯菜單。示例代碼如下:

圖16 示例代碼

實(shí)現(xiàn)效果如下圖所示:

長按服務(wù)卡片,會(huì)彈出編輯菜單選項(xiàng):

圖17 JS服務(wù)卡片效果圖

2.實(shí)現(xiàn)生命周期回調(diào)方法

創(chuàng)建一個(gè)Form Ability,并覆寫Ability在服務(wù)卡片上相應(yīng)的回調(diào)函數(shù):

● onCreateForm(Intent intent)

● onUpdateForm(long formId)

● onDeleteForm(long formId)

● onCastTempForm(long formId)

● onEventNotify(Map

● onTriggerFormEvent(long formId, String message)

下面重點(diǎn)給大家介紹onCreatForm和onUpdateForm的使用方法,其他回調(diào)函數(shù)以此類推。

onCreateForm方法

當(dāng)卡片使用方請(qǐng)求獲取卡片時(shí),卡片提供方會(huì)被拉起并調(diào)用onCreateForm(Intent intent)回調(diào),intent中會(huì)帶有卡片ID,卡片名稱和卡片外觀規(guī)格信息,可按需獲取使用。onCreateForm方法代碼示例如下:

圖18 onCreateForm方法代碼示例

可以通過intent變量獲取到卡片相關(guān)的信息,intent中攜帶的信息如下表:

首先,可以通過卡片名字區(qū)分不同的卡片,根據(jù)不同的卡片執(zhí)行不同的業(yè)務(wù)邏輯。其次可以根據(jù)卡片的尺寸設(shè)置不同的卡片內(nèi)容。最終需要刷新卡片數(shù)據(jù)時(shí),需要?jiǎng)?chuàng)建一個(gè)ZSONObject對(duì)象,將key-value設(shè)置進(jìn)去,其中key需要和index.json中的data數(shù)據(jù)中的key保持一致。然后創(chuàng)建一個(gè)ProviderFormInfo對(duì)象,將ZSONObject對(duì)象設(shè)置進(jìn)去,返回ProviderFormInfo對(duì)象給onCreateForm方法。

onUpdateForm方法

當(dāng)config.json中配置了定點(diǎn)更新或者定時(shí)更新,卡片服務(wù)會(huì)拉起卡片執(zhí)行界面更新。系統(tǒng)會(huì)回調(diào)onUpdateForm方法,應(yīng)用則調(diào)用updateForm去更新卡片內(nèi)容。onUpdateForm方法代碼示例如下:

圖19 onUpdateForm方法代碼示例

將需要更新的數(shù)據(jù)設(shè)置到ZSONObject對(duì)象中,然后通過FormBindingData對(duì)象攜帶ZSONObject對(duì)象,調(diào)用updateForm()方法去更新界面。

當(dāng)定時(shí)/定點(diǎn)觸發(fā)之后,以上代碼生效的效果界面如下:

 

圖20 定時(shí)觸發(fā)效果界面圖

同時(shí)日志輸出:

3.開發(fā)卡片界面元素

JS卡片頁面需要開發(fā)三個(gè)文件:hml、css、json,json文件主要配置數(shù)據(jù)和點(diǎn)擊事件。詳情請(qǐng)參考官網(wǎng)資料【JSON語法參考】。

● JSON語法參考

https://developer.harmonyos.com/cn/docs/documentation/doc-references/js-service-widget-syntax-json-0000001106228840

hml、css和json文件示例內(nèi)容如下:

index.hml文件

圖21 index.hml

index.json

圖22 index.json

index.css文件:

圖22 index.css

其中hml文件中聲明了服務(wù)卡片布局:

● 如果json文件中mini屬性為true,則顯示class=”mini_container”的text控件。

否則不顯示該控件,從而顯示class="items_container"的div布局,該布局從上到下顯示了一張圖片,兩個(gè)文本。所以if語句可以作為多張卡片時(shí)的判斷條件,用于顯示不同的布局。

● css文件則定義hml布局中的樣式,如寬高度、顏色等。

● json文件中定義卡片支持的數(shù)據(jù)和點(diǎn)擊事件。

實(shí)例代碼運(yùn)行效果如下(運(yùn)行在模擬器上的顯示效果):

圖23 模擬器效果顯示圖

4.實(shí)現(xiàn)卡片界面交互

服務(wù)卡片json文件提供數(shù)據(jù)綁定和界面交互。

卡片僅支持click觸發(fā)的事件,事件的定義只能是直接命令式,事件定義必須包含action字段,用以說明事件類型。卡片支持兩種事件類型:跳轉(zhuǎn)事件(router)和消息事件(message)。跳轉(zhuǎn)事件可以跳轉(zhuǎn)到卡片提供方的組件;消息事件可以將開發(fā)者自定義信息傳遞給卡片提供方。

跳轉(zhuǎn)事件格式如下:

消息事件的格式如下:

json的樣例代碼如下:

圖24 json的樣例代碼

其中定義了一個(gè)routerEvent事件和imageEvent事件,這兩個(gè)事件在hml文件中應(yīng)用代碼如下:

圖25 routerEvent事件和imageEvent事件應(yīng)用代碼

routerEvent事件表示點(diǎn)擊卡片后跳轉(zhuǎn)到其他界面過去,而imageEvent是給圖片賦予了點(diǎn)擊事件,該點(diǎn)擊事件會(huì)通過onTriggerFormEvent方法,回調(diào)到Ability中過去。

在跳轉(zhuǎn)事件中,params參數(shù)在onStart()中的intent中可以提取,如下所示:

圖26 params參數(shù)在onStart()中的intent中的提取

json文件中params中定義的json對(duì)象字符串是通過intent.getStringParam(“params”)獲得,是一個(gè)json格式的字符串,可以通過構(gòu)建ZSONObject對(duì)象,獲取對(duì)應(yīng)的value值。

在消息事件中,params參數(shù)可以在onTriggerFormEvent的message中提取,如下所示:

 圖27 params參數(shù)在onTriggerFormEvent中的提取

json文件中params定義的json對(duì)象字符串通過message變量傳遞到Java側(cè)的Ability中,在onTriggerFormEvent方法中可以根據(jù)該json字符串,去做對(duì)應(yīng)的業(yè)務(wù)邏輯。

如上面實(shí)例代碼所示,運(yùn)行出來的卡片界面效果如下:

圖28 卡片界面效果

若點(diǎn)擊了服務(wù)卡片上的圖片,則圖片下面的文字會(huì)變成“點(diǎn)擊后的標(biāo)題”和“這是通過json文件傳遞的內(nèi)容”,該字符串是在index.json的params中定義的。

3、服務(wù)卡片模板

為了方便開發(fā)者快速開發(fā)服務(wù)卡片,DevEco Studio中推出了服務(wù)卡片模板,分為“Basic”和“Advance”兩類,開發(fā)者可以根據(jù)業(yè)務(wù)需要選擇不同的模板。

圖29 DevEco Studio中的服務(wù)卡片模板圖

Grid Pattern(宮格卡片模板)

宮格卡片模板在大尺寸的卡片上特征較為明顯,能夠有規(guī)律進(jìn)行布局排列。例如展示多排應(yīng)用圖標(biāo),每個(gè)熱區(qū)獨(dú)立可點(diǎn)擊,或展示影視海報(bào)等信息,以凸顯圖片為主,描述文本為輔。

Image With Info(圖文卡片模板)

圖文卡片模板主要在于展現(xiàn)圖片和一定數(shù)量文本的搭配,在這種布局下,圖片和文本屬于同等重要的信息。在不同尺寸下,圖片大小和文本數(shù)量會(huì)發(fā)生一定變化,用于凸顯關(guān)鍵信息。

Immersive Pattern(沉浸布局卡片模板)

圖片內(nèi)容是更能夠吸引用戶的展現(xiàn)形式,因此,沉浸式的布局能夠擁有更好的代入感和展現(xiàn)形式。相比較圖文和宮格類,這種布局在造型上的制約會(huì)更小,設(shè)計(jì)形式上的發(fā)揮空間更大,但在不同設(shè)備下的適配需要注意展示效果。

List Pattern(列表卡片模板)

列表卡片模板是展示信息時(shí)的常用界面組件,通常會(huì)在列表的左側(cè)或右側(cè)帶有圖片或點(diǎn)綴元素。這類布局的優(yōu)勢(shì)在于可以集中的展示較多信息量,并遵循有序的排列。常用于新聞?lì)悺⑺阉黝悜?yīng)用,方便用戶獲取關(guān)鍵的文本信息。

Call(通話卡片模板)

通話卡片模板主要用于在桌面顯示自定義的聯(lián)系人圖片和通話按鈕,在這種場(chǎng)景下,可以直接點(diǎn)擊卡片上的通話按鈕進(jìn)行快速呼叫。

Contact(聯(lián)系人卡片模板)

聯(lián)系人卡片模板主要用于在桌面顯示聯(lián)系人快捷按鈕,點(diǎn)擊某個(gè)聯(lián)系人快捷按鈕可快速進(jìn)入聯(lián)系人詳情頁,實(shí)現(xiàn)通過卡片快速跳轉(zhuǎn)聯(lián)系人詳情頁的功能。

DataPattern(數(shù)據(jù)內(nèi)容卡片模板)

數(shù)據(jù)內(nèi)容卡片模板主要用于在桌面展示自定義內(nèi)容的百分占比,這種卡片主體是一個(gè)環(huán)形百分比圖,用于凸顯關(guān)鍵的百分比信息。

Functions(功能卡片模板)

功能卡片模板主要用于在桌面上聚合不同功能的快捷入口,通過點(diǎn)擊卡片的某個(gè)功能,能夠?qū)崿F(xiàn)快速跳轉(zhuǎn)至對(duì)應(yīng)功能頁面。

MusicPlayer(音樂播放器卡片模板)

音樂播放器卡片模板主要用于在桌面展示一個(gè)音樂播放的控制界面,通過點(diǎn)擊卡片上的對(duì)應(yīng)功能按鈕,能夠?qū)崿F(xiàn)對(duì)音樂播放的控制。

Schedule(行程卡片模板)

行程卡片模板布局主要用于在卡片上展示行程關(guān)鍵信息,并帶有功能圖標(biāo),可通過點(diǎn)擊功能圖標(biāo)查看詳細(xì)行程信息。

Shortcuts(捷徑卡片模板)

捷徑卡片模板布局主要用于在桌面展示多個(gè)快捷功能圖標(biāo),在這種布局下,每個(gè)熱區(qū)獨(dú)立可點(diǎn)擊,可快速進(jìn)入相關(guān)功能。

更多卡片模板詳情和卡片模板使用方法可以參考官網(wǎng)資料【開發(fā)服務(wù)卡片】。

● 開發(fā)服務(wù)卡片

https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ide_service_widget-0000001078566997

4、服務(wù)卡片部署

上述的服務(wù)卡片代碼和資源,可與App一起打包成一個(gè)entry hap進(jìn)行部署。同時(shí),服務(wù)卡片還可以獨(dú)立成一個(gè)Module,作為HarmonyOS應(yīng)用的feature進(jìn)行獨(dú)立編譯和部署。無論是打包部署還是獨(dú)立部署,兩種方式構(gòu)建的服務(wù)卡片都可在 AGC和HAG市場(chǎng)上架和更新。

卡片代碼部署工程界面如下圖所示:

圖30 DevEco Studio中的卡片代碼部署工程界面圖

小Tips:調(diào)試安裝時(shí),需要和Entry一起安裝,參考以下命令行:

一文看懂HarmonyOS服務(wù)卡片運(yùn)行原理和開發(fā)方法-鴻蒙HarmonyOS技術(shù)社區(qū)

總結(jié)

服務(wù)卡片作為HarmonyOS應(yīng)用和原子化服務(wù)的一部分對(duì)外呈現(xiàn)重要的信息,具有易用、智能、多端部署特性,能給用戶帶來嶄新的交互體驗(yàn)。

本文整體介紹了HarmonyOS服務(wù)卡片的運(yùn)行原理和開發(fā)方法,服務(wù)卡片運(yùn)行過程中主要是卡片管理服務(wù)作為中間樞紐,連接著卡片使用方和卡片提供方。服務(wù)卡片開發(fā)過程主要分為配置config.json、實(shí)現(xiàn)生命周期回調(diào)方法、開發(fā)卡片界面元素和界面交互,基于HarmonyOS提供的回調(diào)函數(shù)方法,簡(jiǎn)單的幾步就能開發(fā)出業(yè)務(wù)所需的服務(wù)卡片。

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

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

https://harmonyos.51cto.com

 

責(zé)任編輯:jianghua 來源: 鴻蒙社區(qū)
相關(guān)推薦

2023-12-18 10:45:31

2023-07-07 11:36:29

人工智能基礎(chǔ)模型

2020-03-31 14:40:24

HashMap源碼Java

2017-04-17 13:10:09

神經(jīng)網(wǎng)絡(luò)人工智能網(wǎng)絡(luò)

2021-08-01 08:05:39

Linux信號(hào)原理

2016-08-18 00:21:12

網(wǎng)絡(luò)爬蟲抓取網(wǎng)絡(luò)

2023-09-22 10:45:47

云原生云計(jì)算

2017-07-28 09:11:14

HIVEHBASE區(qū)別

2024-08-12 12:30:27

2025-01-09 11:14:14

2025-01-20 09:15:00

iOS 18.3蘋果iOS 18

2021-08-02 06:56:19

TypeScript編程語言編譯器

2019-07-01 09:22:15

Linux操作系統(tǒng)硬件

2019-05-22 09:50:42

Python沙箱逃逸網(wǎng)絡(luò)攻擊

2021-07-05 00:00:55

TomcatNginxApache

2018-02-02 11:17:42

IaaSPaaSSaaS

2019-07-09 10:14:04

云計(jì)算行業(yè)科技

2019-07-11 11:39:31

云計(jì)算操作系統(tǒng)IaaS

2024-06-04 16:59:54

2023-01-03 08:00:00

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)