<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

OpenHarmony上使用服務卡片

OpenHarmony技術社區 ? 來源:OST開源開發者 ? 2023-06-25 15:12 ? 次閱讀

服務卡片是一種界面展示形式,將服務的重要信息以卡片的形式展示給用戶,用戶可通過輕量交互行為實現服務直達、減少層級跳轉的目的。

原子化服務卡片的核心理念在于提供用戶容易使用且一目了然的信息內容,將智慧化能力融入到原子化服務卡片的體驗中供用戶選擇使用,同時滿足在不同終端設備上的展示。

基本概念

卡片使用方:顯示卡片內容的宿主應用,控制卡片在宿主中展示的位置,如桌面、原子化服務中心等。

卡片管理服務:用于管理系統中所添加卡片的常駐代理服務,包括卡片對象的管理與使用,以及卡片周期性刷新等。

卡片提供方:提供卡片顯示內容的 OpenHarmony 應用或原子化服務,控制卡片的顯示內容、控件布局以及控件點擊事件。

注:卡片使用方和提供方不要求常駐運行,在需要添加/刪除/請求更新卡片時,卡片管理服務會拉起卡片提供方獲取卡片信息。

運作機制

bc94e9aa-1326-11ee-962d-dac502259ad0.png

①卡片管理服務

包含以下模塊:

周期性刷新:在卡片添加后,根據卡片的刷新策略啟動定時任務周期性觸發卡片的刷新。

卡片緩存管理:在卡片添加到卡片管理服務后,對卡片的視圖信息進行緩存,以便下次獲取卡片時可以直接返回緩存數據,降低時延。

卡片生命周期管理:對于卡片切換到后臺或者被遮擋時,暫??ㄆ乃⑿?;以及卡片的升級/卸載場景下對卡片數據的更新和清理。

卡片使用方對象管理:對卡片使用方的 RPC 對象進行管理,用于使用方請求進行校驗以及對卡片更新后的回調處理。

通信適配層:負責與卡片使用方和提供方進行 RPC 通信。

②卡片提供方

包含以下模塊:

卡片服務:由卡片提供方開發者實現,開發者實現 onCreateForm、onUpdateForm 和 onDeleteForm 處理創建卡片、更新卡片以及刪除卡片等請求,提供相應的卡片服務。

卡片提供方實例管理模塊:由卡片提供方開發者實現,負責對卡片管理服務分配的卡片實例進行持久化管理。

通信適配層:由 OpenHarmony SDK 提供,負責與卡片管理服務通信,用于將卡片的更新數據主動推送到卡片管理服務。

卡片類別

①尺寸分類

每個原子化服務可以配置多個原子化服務卡片,原子化服務卡片有微(1×2)、?。?2×2 )、中( 2×4 )、大(4×4)4 種尺寸,圖示展示了不同尺寸的卡片。

bcae51d8-1326-11ee-962d-dac502259ad0.png

②場景分類

服務卡片按照不同應用場景使用的應用模型分類,可分為 FA 卡片、Stage 卡片。

FA 卡片

FA 卡片開發,即基于 FA 模型的卡片提供方開發,主要涉及如下功能邏輯:

開發卡片生命周期回調函數 LifecycleForm。

創建卡片數據 FormBindingData 對象。

通過 FormProvider 更新卡片。

開發卡片頁面。

Stage 卡片

Stage 卡片開發,即基于 Stage 模型的卡片提供方開發,主要涉及如下功能邏輯:

卡片生命周期回調函數 FormExtension 開發。

創建卡片數據 FormBindingData 對象。

通過 FormProvider 更新卡片。

卡片頁面開發。

本文主要介紹如何拉起卡片服務,對于卡片的開發介紹可以參考社區已有文檔。 FA 卡片開發:

https://docs.openharmony.cn/pages/v3.1/zh-cn/application-dev/ability/fa-formability.md/
Stage 卡片開發:
https://docs.openharmony.cn/pages/v3.1/zh-cn/application-dev/ability/stage-formextension.md/

實踐探索

bcde4cee-1326-11ee-962d-dac502259ad0.png

原子化服務卡片分為獨立服務卡片和應用內服務卡片。其中,獨立服務卡片又分為本地卡片和云端卡片。

本地卡片可以直接安裝到設備上,而云端卡片需要下載并安裝到設備上。應用內服務卡片則是指嵌入到應用程序中的服務卡片,可以提供更加定制化和個性化的服務。

卡片提供方可以提供單獨的服務卡片,也可以在應用內提供服務卡片,這取決于使用場景。

①拉起應用內卡片

卡片提供方在應用內提供卡片,應用安裝到設備后,效果如下圖所示:

bceb9aa2-1326-11ee-962d-dac502259ad0.png

卡片提供方信息:在已有應用中通過 File→New→Service Widget 新建應用內卡片。

bd0d0188-1326-11ee-962d-dac502259ad0.png

卡片生成后,相關信息可以在 config.json 文件查看:

bd188b02-1326-11ee-962d-dac502259ad0.png

卡片使用方修改:調用 FormComponent 組件。

根據卡片提供方的卡片 name、bundle、ability、module、dimension 等信息調用 FormComponent 組件。

參考代碼如下:

FormComponent({
id:0,
name:"widget",
bundle:"com.example.test_card",
ability:"com.example.test_card.FormAbility",
module:"entry",
dimension:FormDimension.Dimension_2_2
})
.allowUpdate(true)
.size({width:360,height:360})
.visibility(Visibility.Visible)
.onAcquired((form)=>{
console.log(`forminfo:${JSON.stringify(form)}`);
this.formId=form.id;
})
.onError((err)=>{
console.log(`zjxappfailtoaddform,err:${JSON.stringify(err)}`);
})
關于卡片使用方組件詳細描述見FormComponent:
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-formcomponent.md
增加權限:在 entrysrcmainmodule.json5 中增加 FormComponent 組件所需的權限 GET_BUNDLE_INFO、GET_BUNDLE_INFO_PRIVILEGED、REQUIRE_FORM。
"abilities":[
{
"name":"EntryAbility",
"srcEntrance":"./ets/entryability/EntryAbility.ts",
"description":"$string:EntryAbility_desc",
"icon":"$media:icon",
"label":"$string:EntryAbility_label",
"startWindowIcon":"$media:icon",
"startWindowBackground":"$color:start_window_background",
"visible":true,
"skills":[
{
"entities":[
"entity.system.home"
],
"actions":[
"action.system.home"
]
}
]
}
],
"requestPermissions":[
{
"name":"ohos.permission.GET_BUNDLE_INFO"
},
{
"name":"ohos.permission.GET_BUNDLE_INFO_PRIVILEGED"
},
{
"name":"ohos.permission.REQUIRE_FORM"
}
]

②拉起獨立的卡片

單獨的服務卡片安裝到設備后,可以通過 hdc shell 命令查詢到對應的卡片服務。

#ps-ef|grep"com.zjxtest.hmservice"

卡片提供方信息:工程模板通過選擇工程類型為"Atomic service",可以新建獨立的服務卡片。

bd24b562-1326-11ee-962d-dac502259ad0.png

entrysrcmainmodule.json5 中可以查看卡片相關信息:

bd323980-1326-11ee-962d-dac502259ad0.png

卡片使用方修改:調用 FormComponent 組件。

根據卡片提供方的卡片 name、bundle、ability、module、dimension 等信息調用 FormComponent 組件。

參考代碼如下:

FormComponent({
id:0,
name:"widget",
bundle:"com.example.test_card",
ability:"EntryFormAbility",
module:"entry",
dimension:FormDimension.Dimension_2_2
})
.allowUpdate(true)
.size({width:360,height:360})
.visibility(Visibility.Visible)
.onAcquired((form)=>{
console.log(`forminfo:${JSON.stringify(form)}`);
this.formId=form.id;
})
.onError((err)=>{
console.log(`zjxappfailtoaddform,err:${JSON.stringify(err)}`);
})

注:ability 與應用內的服務卡片有所區別。

增加權限:參考上面增加權限部分。

總結

本文介紹了兩種類型的卡片,獨立服務卡片、應用內服務卡片。 獨立服務卡片是指可以獨立安裝和運行的服務卡片,可以提供各種功能和服務,如天氣、新聞、音樂等。 獨立服務卡片又分為本地卡片和云端卡片。本地卡片可以直接安裝到設備上,而云端卡片需要下載并安裝到設備上。 應用內服務卡片是指嵌入到應用程序中的服務卡片,可以提供更加定制化和個性化的服務。 應用內服務卡片通常與應用程序緊密集成,可以提供更加便捷和高效的服務。應用內服務卡片可以根據應用程序的需求和用戶的偏好進行定制和開發,可以提供更加豐富和多樣化的服務。 最后對如何兩種類型的拉起方式做了介紹,希望可以給初學開發者一些幫助。

作者:趙軍霞

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 通信
    +關注

    關注

    18

    文章

    5739

    瀏覽量

    134690
  • 卡片
    +關注

    關注

    0

    文章

    8

    瀏覽量

    9123
  • SDK
    SDK
    +關注

    關注

    3

    文章

    975

    瀏覽量

    44928
  • OpenHarmony
    +關注

    關注

    24

    文章

    3442

    瀏覽量

    15291

原文標題:OpenHarmony上使用服務卡片

文章出處:【微信號:gh_834c4b3d87fe,微信公眾號:OpenHarmony技術社區】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    OpenHarmony開發案例:【電影卡片

    基于元服務卡片的能力,實現帶有卡片的電影應用,介紹卡片的開發過程和生命周期實現。
    的頭像 發表于 04-15 17:53 ?1004次閱讀
    <b class='flag-5'>OpenHarmony</b>開發案例:【電影<b class='flag-5'>卡片</b>】

    一文看懂HarmonyOS服務卡片運行原理和開發方法

    或者操作前置到卡片,以達到服務直達的目的。卡片實際界面如下圖所示。圖1 具有服務卡片的桌面如圖
    發表于 07-27 17:21

    完整服務卡片項目開發,為Bilibili添加服務卡片

    { ... ... protected ProviderFormInfo onCreateForm(Intent intent) {...}//在服務卡片右擊>>服務
    發表于 09-03 20:49

    HarmonyOS卡片開發--服務卡片概述

    服務卡片(以下簡稱“卡片”)是FA的一種界面展示形式,將FA的重要信息或操作前置到卡片,以達到服務直達,減少體驗層級的目的。
    發表于 09-22 14:10

    HarmonyOS原子化服務(三)服務卡片策劃設計經驗總結

    的內容特色等,選擇一種類型或者多種類型的一張或者多張卡片,一個原子化服務應用,蛟龍騰飛總體建議不超過16張服務卡片。2.
    發表于 02-10 09:29

    HarmonyOS之服務卡片(Java)開發步驟

    服務卡片的組件單獨添加點擊事件(Java)Java卡片通過componentProvider.setIntentAgent方法設置點擊事件。封裝IntentAgentInfo時,第一個參數“200
    發表于 07-26 16:17

    HarmonyOS/OpenHarmony應用開發-FA卡片開發體驗

    卡片概述卡片是一種界面展示形式,可以將應用的重要信息或操作前置到卡片,以達到服務直達,減少體驗層級的目的。卡片常用于嵌入到其他應用(當前只支
    發表于 12-06 14:48

    HarmonyOS/OpenHarmony服務開發-配置卡片的配置文件

    ;supportDimensions\": [ \"2*2\" ] } ] } *附件:HarmonyOSOpenHarmony服務開發-配置卡片的配置文件.docx
    發表于 08-01 11:45

    OpenHarmony ArkTS工程目錄結構(Stage模型)

    :模塊配置文件。主要包含HAP的配置信息、應用/服務在具體設備的配置信息以及應用/服務的全局配置信息。具體的配置文件說明,詳見module.json5配置文件。 build-profile.json5
    發表于 09-18 15:23

    基于DevEco Studio的OpenHarmony應用原子化服務(元服務)入門教程

    一、創建項目 二、創建卡片 三、應用服務代碼 Index.ets @Entry @Component struct Index { @State TITLE: string
    發表于 11-06 11:18

    B站添加鴻蒙服務卡片教程

    ???????? 6 月 2 日鴻蒙發布,今年的六月已經被鴻蒙刷屏了。從安卓到鴻蒙,最直觀的變化應該就是服務卡片了。我也是在學習鴻蒙的同時,實際體驗一下服務卡片的開發。 接下來分享下我
    的頭像 發表于 08-12 10:07 ?2430次閱讀
    B站添加鴻蒙<b class='flag-5'>服務</b><b class='flag-5'>卡片</b>教程

    HarmonyOS服務卡片如何換膚

      關注HarmonyOS的小伙伴肯定對服務卡片已經很熟悉了。服務卡片(也簡稱為“卡片”)是FA(FeatureAbility,元
    的頭像 發表于 02-12 10:28 ?2548次閱讀
    HarmonyOS<b class='flag-5'>服務</b><b class='flag-5'>卡片</b>如何換膚

    一款鴻蒙版的嗶哩嗶哩服務卡片應用案例

    介紹 這是一款純鴻蒙版的嗶哩嗶哩服務卡片應用。 6月2日鴻蒙發布,今年的六月已經被鴻蒙刷屏了。從安卓到鴻蒙,最直觀的變化應該就是服務卡片了。我也是在學習鴻蒙的同時,實際體驗一下
    發表于 04-07 09:42 ?0次下載

    用Java開發HarmonyOS服務卡片

    卡片服務:由卡片提供方開發者實現,開發者實現 onCreateForm、onUpdateForm 和 onDeleteForm 處理創建卡片、更新
    的頭像 發表于 04-26 11:04 ?1298次閱讀

    如何在OpenHarmony上開發服務卡片

    本篇文章我們將分享如何在 OpenHarmony 上開發服務卡片。
    的頭像 發表于 04-10 11:12 ?741次閱讀
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>