成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

OpenHarmony之服務卡片實踐介紹

系統 OpenHarmony
本文介紹了兩種類型的卡片,獨立服務卡片、應用內服務卡片。獨立服務卡片是指可以獨立安裝和運行的服務卡片,可以提供各種功能和服務,如天氣、新聞、音樂等。獨立服務卡片又分為本地卡片和云端卡片。

想了解更多關于開源的內容,請訪問:

51CTO 開源基礎軟件社區

https://ost.51cto.com

前言

服務卡片是一種界面展示形式,將服務的重要信息以卡片的形式展示給用戶,用戶可通過輕量交互行為實現服務直達、減少層級跳轉的目的。
原子化服務卡片的核心理念在于提供用戶容易使用且一目了然的信息內容,將智慧化能力融入到原子化服務卡片的體驗中供用戶選擇使用,同時滿足在不同終端設備上的展示。

一、基本概念

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

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

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

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

二、運作機制

OpenHarmony之服務卡片實踐介紹-開源基礎軟件社區

1、卡片管理服務

包含以下模塊:

  • 周期性刷新:在卡片添加后,根據卡片的刷新策略啟動定時任務周期性觸發卡片的刷新。
  • 卡片緩存管理:在卡片添加到卡片管理服務后,對卡片的視圖信息進行緩存,以便下次獲取卡片時可以直接返回緩存數據,降低時延。
  • 卡片生命周期管理:對于卡片切換到后臺或者被遮擋時,暫停卡片的刷新;以及卡片的升級/卸載場景下對卡片數據的更新和清理。
  • 卡片使用方對象管理:對卡片使用方的RPC對象進行管理,用于使用方請求進行校驗以及對卡片更新后的回調處理。
  • 通信適配層:負責與卡片使用方和提供方進行RPC通信。

2、卡片提供方

包含以下模塊:

  • 卡片服務:由卡片提供方開發者實現,開發者實現onCreateForm、onUpdateForm和onDeleteForm處理創建卡片、更新卡片以及刪除卡片等請求,提供相應的卡片服務。
  • 卡片提供方實例管理模塊:由卡片提供方開發者實現,負責對卡片管理服務分配的卡片實例進行持久化管理。
  • 通信適配層:由OpenHarmony SDK提供,負責與卡片管理服務通信,用于將卡片的更新數據主動推送到卡片管理服務。

三、卡片類別

1、尺寸分類

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

OpenHarmony之服務卡片實踐介紹-開源基礎軟件社區

2、場景分類

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

FA卡片

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

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

創建卡片數據FormBindingData對象。

通過FormProvider更新卡片。

開發卡片頁面。

Stage卡片

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

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

創建卡片數據FormBindingData對象。

通過FormProvider更新卡片。

卡片頁面開發。

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

FA卡片開發

Stage卡片開發

四、實踐探索

OpenHarmony之服務卡片實踐介紹-開源基礎軟件社區

原子化服務卡片分為獨立服務卡片和應用內服務卡片。其中,獨立服務卡片又分為本地卡片和云端卡片。本地卡片可以直接安裝到設備上,而云端卡片需要下載并安裝到設備上。應用內服務卡片則是指嵌入到應用程序中的服務卡片,可以提供更加定制化和個性化的服務。卡片提供方可以提供單獨的服務卡片,也可以在應用內提供服務卡片,這取決于使用場景。

1、拉起應用內卡片

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

OpenHarmony之服務卡片實踐介紹-開源基礎軟件社區

(1)卡片提供方信息

在已有應用中通過File->New->Service Widget新建應用內卡片。

OpenHarmony之服務卡片實踐介紹-開源基礎軟件社區

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

OpenHarmony之服務卡片實踐介紹-開源基礎軟件社區

(2)卡片使用方修改

調用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(`form info : ${JSON.stringify(form)}`);
        this.formId = form.id;
      })
      .onError((err)=>{
        console.log(`zjxapp fail to add form, err: ${JSON.stringify(err)}`);
      })

關于卡片使用方組件詳細描述見FormComponent

增加權限

在entry\src\main\module.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"
  }
]

2、拉起獨立的卡片

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

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

(1)卡片提供方信息

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

OpenHarmony之服務卡片實踐介紹-開源基礎軟件社區

\entry\src\main\module.json5中可以查看卡片相關信息。

OpenHarmony之服務卡片實踐介紹-開源基礎軟件社區

(2)卡片使用方修改

調用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(`form info : ${JSON.stringify(form)}`);
        this.formId = form.id;
      })
      .onError((err)=>{
        console.log(`zjxapp fail to add form, err: ${JSON.stringify(err)}`);
      })

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

增加權限

參考4.1.2.2章節增加權限

五、總結

本文介紹了兩種類型的卡片,獨立服務卡片、應用內服務卡片。獨立服務卡片是指可以獨立安裝和運行的服務卡片,可以提供各種功能和服務,如天氣、新聞、音樂等。獨立服務卡片又分為本地卡片和云端卡片。本地卡片可以直接安裝到設備上,而云端卡片需要下載并安裝到設備上。

應用內服務卡片是指嵌入到應用程序中的服務卡片,可以提供更加定制化和個性化的服務。應用內服務卡片通常與應用程序緊密集成,可以提供更加便捷和高效的服務。應用內服務卡片可以根據應用程序的需求和用戶的偏好進行定制和開發,可以提供更加豐富和多樣化的服務。

最后對如何兩種類型的拉起方式做了介紹,希望可以給初學開發者一些幫助。

想了解更多關于開源的內容,請訪問:

51CTO 開源基礎軟件社區

https://ost.51cto.com

責任編輯:jianghua 來源: 51CTO 開源基礎軟件社區
相關推薦

2023-04-07 09:20:55

2021-07-28 14:59:08

鴻蒙HarmonyOS應用

2023-08-04 17:24:43

2021-12-08 15:07:51

鴻蒙HarmonyOS應用

2023-06-27 15:02:47

2022-09-15 14:56:12

GDB調試鴻蒙

2024-01-03 15:41:49

2023-06-20 15:40:58

系統開發鴻蒙

2018-02-25 23:02:20

服務藍圖服務設計

2021-09-18 09:57:20

鴻蒙HarmonyOS應用

2022-03-29 10:04:44

APIHarmony文件管理

2024-03-26 15:25:55

應用接口文件轉換工具鴻蒙

2021-09-15 10:19:15

鴻蒙HarmonyOS應用

2022-06-13 14:18:39

電源管理子系統耗電量服務

2023-06-01 15:30:30

Service代碼生成工具

2023-04-12 15:31:11

系統服務管理鴻蒙

2021-07-22 08:45:47

鴻蒙HarmonyOS應用

2022-03-03 18:39:01

Harmonyioremap鴻蒙

2022-04-24 15:26:38

服務卡鴻蒙

2024-06-21 10:07:06

鴻蒙service生成工具
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 99reav | 粉嫩一区二区三区性色av | 91精品国产综合久久婷婷香蕉 | 野狼在线社区2017入口 | 日韩激情视频一区 | 一区二区三区视频在线观看 | 伊人超碰| 国产欧美一区二区在线观看 | 免费一区| 久久久一区二区三区四区 | www.亚洲精品 | 日韩伦理一区二区 | 国产成人精品在线播放 | 最新高清无码专区 | 操夜夜 | 日韩在线不卡 | 中文字幕日韩欧美一区二区三区 | 欧州一区二区三区 | 亚洲精品久久久一区二区三区 | 国产精品免费一区二区 | 国产精品69久久久久水密桃 | 美女视频黄的免费 | 一区二区免费在线观看 | 久久久精品一区二区 | 久久久久久免费毛片精品 | 香蕉大人久久国产成人av | 免费观看一级视频 | 在线播放精品视频 | 99福利视频 | 日本羞羞影院 | 国产a区 | 97超碰人人 | 午夜一区二区三区在线观看 | 亚洲欧美国产毛片在线 | 一级a性色生活片久久毛片波多野 | 亚洲欧美中文日韩在线v日本 | 久久国产欧美一区二区三区精品 | 涩涩鲁亚洲精品一区二区 | 午夜电影福利 | 日日网| 成人精品鲁一区一区二区 |