精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

鴻蒙開發組件:ServiceAbility組件概述與配置

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-06-19 14:52 ? 次閱讀

ServiceAbility組件概述

ServiceAbility,即"基于Service模板的Ability",主要用于后臺運行任務(如執行音樂播放、文件下載等),不提供用戶交互界面。ServiceAbility可由其他應用或PageAbility啟動,即使用戶切換到其他應用,ServiceAbility仍將在后臺繼續運行。

ServiceAbility組件配置

與PageAbility類似,ServiceAbility的相關配置在config.json配置文件的"module"對象的"abilities"對象中,與PageAbility的區別在于"type"屬性及"backgroundModes"屬性。

表1 ServiceAbility部分配置項說明

屬性名稱含義開發前請熟悉鴻蒙開發指導文檔:[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]點擊或者復制轉到。數據類型是否可缺省
type表示Ability的類型。取值為"service"時表示該Ability是基于Service模板開發的Ability。字符串
backgroundModes表示后臺服務的類型,可以為一個服務配置多個后臺服務類型。該標簽僅適用于service類型的Ability。取值范圍如下: dataTransfer:通過網絡/對端設備進行數據下載、備份、分享、傳輸等業務。 audioPlayback:音頻輸出業務。 audioRecording:音頻輸入業務。 pictureInPicture:畫中畫、小窗口播放視頻業務。 voip:音視頻電話、VOIP業務。 location:定位、導航業務。 bluetoothInteraction:藍牙掃描、連接、傳輸業務。 wifiInteraction:WLAN掃描、連接、傳輸業務。 screenFetch:錄屏、截屏業務。 multiDeviceConnection:多設備互聯業務。字符串數組可缺省,缺省值為空。

module對象內部結構

module對象包含HAP的配置信息

表1****module對象內部結構說明

屬性名稱含義數據類型是否可缺省
mainAbility服務中心圖標露出的Ability,常駐進程拉起時會啟動mainAbility。字符串可缺省,缺省值為空。
package標識HAP的包結構名稱,在應用內保證唯一性。采用反向域名格式(建議與HAP的工程目錄保持一致)。字符串長度為1-127個字節。字符串不可缺省。
name標識HAP的類名。采用反向域名方式標識,前綴要與同級的package標簽指定的包名一致,也可采用"."開頭的命名方式。字符串長度不超過255字節。字符串可缺省,缺省值為空。
description標識HAP的描述信息。字符串長度不超過255字節。如果字符串超出長度或者需要支持多語言,可以采用資源索引的方式添加描述內容。字符串可缺省,缺省值為空。
supportedModes標識應用支持的運行模式,當前只定義了駕駛模式(drive)。該標簽只適用于車機。字符串數組可缺省,缺省值為空。
deviceType標識允許Ability運行的設備類型。系統預定義的設備類型包括:tablet(平板)、tv(智慧屏)、car(車機)、wearable(智能穿戴)等。字符串數組不可缺省。
distro標識HAP發布的具體描述。對象不可缺省。
metaData標識HAP的元信息。對象可缺省,缺省值為空。
abilities標識當前模塊內的所有Ability。采用對象數據格式。對象數組可缺省,缺省值為空。
js標識基于ArkUI框架開發的JS模塊集合,其中的每個元素代表一個JS模塊的信息。對象數組可缺省,缺省值為空。
shortcuts標識應用的快捷方式信息。采用對象數組格式,其中的每個元素表示一個快捷方式對象。對象數組可缺省,缺省值為空。
reqPermissions標識應用運行時向系統申請的權限。對象數組可缺省,缺省值為空。
colorMode標識應用自身的顏色模式,目前支持如下三種模式: - dark:表示按照深色模式選取資源。 - light:表示按照淺色模式選取資源。 - auto:表示跟隨系統的顏色模式值選取資源。字符串可缺省,缺省值為"auto"。
distroFilter該標簽下的子標簽均為可選字段,用于定義HAP對應的細分設備規格的分發策略,以便應用市場在云端分發HAP時做精準匹配。該標簽需要配置在/resource/profile資源目錄下;在進行分發時,通過deviceType與下表屬性的匹配關系,唯一確定一個用于分發到設備的HAP。對象可缺省,缺省值為空。但當應用中包含多個entry模塊時,必須配置該標簽。
commonEvents定義了公共事件靜態訂閱者的信息,該字段中需要聲明靜態訂閱者的名稱、權限要求及訂閱事件列表信息,當訂閱的公共事件發送時,該公共事件靜態訂閱者將被拉起。這里的靜態訂閱者區分于常用的動態訂閱者,前者無需在業務代碼中主動調用訂閱事件的接口,在公共事件發布時可能未被拉起,而動態訂閱者則在業務代碼中主動調用公共事件訂閱的相關API,因此需要應用處于活動狀態。對象數組可缺省,缺省為空。
entryTheme此標簽標識系統內部主題的關鍵字。將標記值設置為名稱的資源索引。字符串可缺省,缺省值為空。
testRunner此標簽用于支持對測試框架的配置。對象可缺省,缺省值為空。
generateBuildHash標識當前HAP/HSP是否由打包工具生成哈希值。如果存在,則在系統OTA升級但應用的[version下的code]保持不變時,可根據哈希值判斷應用是否需要升級。** 注:該字段僅對預置應用生效。**布爾值該標簽可缺省, 缺省值為false。
libIsolation用于區分同應用不同hap下的so文件,以防止so沖突。 - true:當前hap的so會儲存在libs目錄中以Module名命名的路徑下。 - false:當前hap的so會直接儲存在libs目錄中。布爾值該標簽可缺省, 缺省值為false。

module示例:

{
  "module": {
    "mainAbility": ".EntryAbility",
    "deviceType": [
      "default",
      "tablet"
    ],
    "abilities": [
      {
        "skills": [
          {
            "entities": [
              "entity.system.home"
            ],
            "actions": [
              "action.system.home"
            ]
          }
        ],
        "orientation": "unspecified",
        "visible": true,
        "srcPath": "EntryAbility",
        "name": ".EntryAbility",
        "srcLanguage": "ets",
        "icon": "$media:icon",
        "description": "$string:MainAbility_desc",
        "formsEnabled": false,
        "label": "$string:MainAbility_label",
        "type": "page",
        "launchType": "multiton"
      }
    ],
    "distro": {
      "moduleType": "entry",
      "installationFree": false,
      "deliveryWithInstall": true,
      "moduleName": "entry"
    },
    "package": "com.example.entry",
    "srcPath": "",
    "name": ".entry",
    "js": [
      {
        "mode": {
          "syntax": "ets",
          "type": "pageAbility"
        },
        "pages": [
          "pages/Index"
        ],
        "name": ".EntryAbility",
        "window": {
          "designWidth": 720,
          "autoDesignWidth": false
        }
      }
    ]
  }
}

distro對象內部結構

表2****distro對象內部結構說明

屬性名稱含義數據類型是否可缺省
moduleName標識當前HAP的名稱,最大長度為31個字節。 在應用升級時,該名稱允許修改,但需要應用適配Module相關數據目錄的遷移,可使用[文件操作接口]。字符串不可缺省。
moduleType標識當前HAP的類型,包括三種類型:entry、feature和har。字符串不可缺省。
installationFree標識當前HAP是否支持免安裝特性。true:表示支持免安裝特性,且符合免安裝約束。false:表示不支持免安裝特性。另外還需注意:當entry.hap該字段配置為true時,與該entry.hap相關的所有feature.hap該字段也需要配置為true。當entry.hap該字段配置為false時,與該entry.hap相關的各feature.hap該字段可按業務需求配置true或false。布爾值不可缺省。
deliveryWithInstall標識當前HAP是否在用戶主動安裝HAP所在應用的時候一起安裝。true: 安裝應用時當前HAP隨應用一起下載安裝。false:安裝應用時當前HAP并不下載安裝,后續使用是按需下載。布爾值不可缺省。

distro示例:

"distro": {
  "moduleName": "ohos_entry",
  "moduleType": "entry",
  "installationFree": true,
  "deliveryWithInstall": true
}

metadata對象內部結構

表3****metadata對象內部結構說明

屬性名稱含義數據類型是否可缺省
parameters標識調用Ability時所有調用參數的元信息。每個調用參數的元信息由以下三個標簽組成:description、name、type。對象數組可缺省,缺省值為空
results標識Ability返回值的元信息。每個返回值的元信息由以下三個標簽組成:description、name、type。對象數組可缺省,缺省值為空。
customizeData該標簽標識父級組件的自定義元信息,Parameters和results在application不可配。對象數組可缺省,缺省值為空。

parameters對象內部結構

表4****parameters對象內部結構說明

屬性名稱含義數據類型是否可缺省
description標識對調用參數的描述,可以是表示描述內容的字符串,也可以是對描述內容的資源索引以支持多語言。該標簽最大長度為255個字節。字符串可缺省,缺省值為空。
name標識調用參數的名稱。該標簽最大長度為255個字節。字符串不可缺省。
type標識調用參數的類型,如Integer。字符串不可缺省。

results對象內部結構

表5****results對象內部結構說明

屬性名稱含義數據類型是否可缺省
description標識對返回值的描述,可以是表示描述內容的字符串,也可以是對描述內容的資源索引以支持多語言。該標簽最大長度為255個字節。字符串可缺省,缺省值為空。
name標識返回值的名字。該標簽最大長度為255個字節。字符串可缺省,缺省值為空。
type標識返回值的類型,如Integer。字符串不可缺省

customizeData對象的內部結構

表6****customizeData對象的內部結構說明

屬性名稱含義數據類型是否可缺省
name標識數據項的鍵名稱,字符串類型(最大長度255字節)。字符串可缺省,缺省值為空。
value標識數據項的值名稱,字符串類型(最大長度255字節)。字符串可缺省,缺省值為空。
extra標識用戶自定義數據格式,標簽值為標識該數據的資源的索引值。字符串可缺省,缺省值為空。

metadata對象示例:

"metaData": {
  "parameters" : [{
    "name" : "a test for metadata parameter",
    "type" : "Float",
    // "$string:parameters_description"為文件資源索引值
    "description" : "$string:parameters_description"
  }],
  "results" : [{
    "name" : "a test for metadata result",
    "type" : "Float",
    "description" : "$string:results_description"
  }],
  "customizeData" : [{
    "name" : "a customizeData",
    "value" : "string",
    "extra" : "$string:customizeData_description"
  }]
}

deviceType標簽

表7****deviceType標簽配置說明

設備類型枚舉值說明
平板tablet-
智慧屏tv-
智能手表wearable系統能力較豐富的手表,具備電話功能。
車機car-
默認設備default能夠使用全部系統能力的設備。

abilities對象的內部結構

表8****abilities對象的內部結構說明

屬性名稱含義數據類型是否可缺省
process運行應用程序或Ability的進程名稱。如果在deviceConfig標記中配置了進程,則應用程序的所有能力都在此進程中運行。您還可以為特定能力設置流程屬性,以便該能力可以在此流程中運行。如果此屬性設置為與其他應用程序相同的進程名稱,則所有這些應用程序可以在同一進程中運行,前提是他們具有相同的聯合用戶ID和相同的簽名。該標簽最大字節數為31個字節。字符串可缺省,缺省值為空。
name標識Ability名稱。取值可采用反向域名方式表示,由包名和類名組成,如"com.example.myapplication.EntryAbility";也可采用"."開頭的類名方式表示,如".EntryAbility"。 Ability的名稱,需在一個應用的范圍內保證唯一。說明:在使用DevEco Studio新建項目時,默認生成首個Ability的配置,即"config.json"中"EntryAbility"的配置。如使用其他IDE工具,可自定義名稱。該標簽最大長度為127個字節。字符串不可缺省
description標識對Ability的描述。取值可以是描述性內容,也可以是對描述性內容的資源索引,以支持多語言。該標簽最大長度為255個字節。字符串可缺省,缺省值為空。
icon標識Ability圖標資源文件的索引。取值示例:$media:ability_icon。如果在該Ability的skills屬性中,actions的取值包含 "action.system.home",entities取值中包含"entity.system.home",則該Ability的icon將同時作為應用的icon。如果存在多個符合條件的Ability,則取位置靠前的Ability的icon作為應用的icon。 說明:應用的"icon"和"label"是用戶可感知配置項,需要區別于當前所有已有的應用"icon"或"label"(至少有一個不同)。字符串可缺省,缺省值為空。
label標識Ability對用戶顯示的名稱。取值是對該名稱的資源索引,支持多語言,例:$string:ability_label。如果在該Ability的skills屬性中,actions的取值包含 "action.system.home",entities取值中包含"entity.system.home",則該Ability的label將同時作為應用的label。如果存在多個符合條件的Ability,則取位置靠前的Ability的label作為應用的label。 說明: 應用的"icon"和"label"是用戶可感知配置項,需要區別于當前所有已有的應用"icon"或"label"(至少有一個不同)。該標簽為資源文件中定義的字符串的引用,或以"{}"包括的字符串。該標簽最大長度為255個字節。字符串可缺省,缺省值為空。
uri標識Ability的統一資源標識符。該標簽最大長度為255個字節。字符串可缺省,對于data類型的Ability不可缺省。
launchType標識Ability的啟動模式,支持"multiton"和"singleton"兩種模式: multiton:表示該Ability可以有多實例。該模式適用于大多數應用場景。 singleton:表示該Ability在所有任務棧中僅可以有一個實例。例如,具有全局唯一性的呼叫來電界面即采用"singleton"模式。該標簽僅適用于默認設備、平板、智慧屏、車機、智能穿戴。字符串可缺省,缺省值為"singleton"。
visible標識Ability是否可以被其他應用調用。 true:可以被其他應用調用。 false:不能被其他應用調用,包括無法被aa工具命令拉起應用。布爾類型可缺省,缺省值為"false"。
permissions標識其他應用的Ability調用此Ability時需要申請的權限集合,一個數組元素為一個權限名稱。通常采用反向域名格式(最大255字節),取值為系統預定義的權限。字符串數組可缺省,缺省值為空。
skills標識Ability能夠接收的want的特征。對象數組可缺省,缺省值為空。
deviceCapability標識Ability運行時要求設備具有的能力,采用字符串數組的格式表示。該標簽為數組,支持最多配置512個元素,單個元素最大字節長度為64。字符串數組可缺省,缺省值為空。
metaData元數據。對象可缺省,缺省值為空。
type標識Ability的類型。取值范圍如下: page:表示基于Page模板開發的FA,用于提供與用戶交互的能力。 service:表示基于Service模板開發的PA,用于提供后臺運行任務的能力。 data:表示基于Data模板開發的PA,用于對外部提供統一的數據訪問對象。 CA:表示支持其他應用以窗口方式調起該Ability。字符串不可缺省。
orientation標識該Ability的顯示模式。該標簽僅適用于page類型的Ability。取值范圍如下: unspecified:由系統自動判斷顯示方向。 landscape:橫屏模式。 portrait:豎屏模式。 followRecent:跟隨棧中最近的應用。字符串可缺省,缺省值為"unspecified"。
backgroundModes標識后臺服務的類型,可以為一個服務配置多個后臺服務類型。該標簽僅適用于service類型的Ability。取值范圍如下: dataTransfer:通過網絡/對端設備進行數據下載、備份、分享、傳輸等。 audioPlayback:音頻播放。 audioRecording:錄音。 pictureInPicture:畫中畫、小窗口播放視頻。 voip:音視頻電話、VOIP。 location:定位、導航。 bluetoothInteraction:藍牙掃描、連接、傳輸。 wifiInteraction:Wi-Fi掃描、連接、傳輸。 screenFetch:錄屏、截屏。 multiDeviceConnection:多設備互聯。字符串數組可缺省,缺省值為空。
grantPermission指定是否可以向Ability內任何數據授予權限。布爾值可缺省,缺省值為空。
readPermission標識讀取Ability的數據所需的權限。該標簽僅適用于data類型的Ability。取值為長度不超過255字節的字符串。該標簽僅適用于默認設備、平板、智慧屏、車機、智能穿戴。字符串可缺省,缺省為空。
writePermission標識向Ability寫數據所需的權限。該標簽僅適用于data類型的Ability。取值為長度不超過255字節的字符串。字符串可缺省,缺省為空。
configChanges標識Ability關注的系統配置集合。當已關注的配置發生變更后,Ability會收到onConfigurationUpdated回調。取值范圍: mcc:表示IMSI移動設備國家/地區代碼(MCC)發生變更。典型場景:檢測SIM并更新MCC。 mnc:IMSI移動設備網絡代碼(MNC)發生變更。典型場景:檢測到SIM并更新MNC。 locale:表示語言區域發生變更。典型場景:用戶已為設備文本的文本顯示選擇新的語言類型。 layout:表示屏幕布局發生變更。典型場景:當前有不同的顯示形態都處于活躍狀態。 fontSize:表示字號發生變更。典型場景:用戶已設置新的全局字號。 orientation:表示屏幕方向發生變更。典型場景:用戶旋轉設備。 density:表示顯示密度發生變更。典型場景:用戶可能指定不同的顯示比例,或當前有不同的顯示形態同時處于活躍狀態。 size:顯示窗口大小發生變更。 smallestSize:顯示窗口較短邊的邊長發生變更。 colorMode:顏色模式發生變更。字符串數組可缺省,缺省為空。
mission標識Ability指定的任務棧。該標簽僅適用于page類型的Ability。默認情況下應用中所有Ability同屬一個任務棧。字符串可缺省,缺省為應用的包名。
targetAbility標識當前Ability重用的目標Ability。該標簽僅適用于page類型的Ability。如果配置了targetAbility屬性,則當前Ability(即別名Ability)的屬性中僅name、icon、label、visible、permissions、skills生效,其他屬性均沿用targetAbility中的屬性值。目標Ability必須與別名Ability在同一應用中,且在配置文件中目標Ability必須在別名之前進行聲明。字符串可缺省,缺省值為空。表示當前Ability不是一個別名Ability。
formsEnabled標識Ability是否支持卡片(forms)功能。該標簽僅適用于page類型的Ability。 true:支持卡片能力。 false:不支持卡片能力。布爾值可缺省,缺省值為false。
forms標識服務卡片的屬性。該標簽僅當formsEnabled為"true"時,才能生效。對象數組可缺省,缺省值為空。
srcLanguageAbility開發語言的類型,開發者創建工程時由開發者手動選擇開發語言。取值如下:"js"、"ets"、"java"。字符串可缺省,缺省值為"js"。
srcPath該標簽標識Ability對應的JS組件代碼路徑,該標簽最大長度為127字節。字符串不可缺省。
uriPermission標識該Ability有權訪問的應用程序數據。此屬性由模式和路徑子屬性組成。此屬性僅對類型提供者的能力有效。對象可缺省,缺省值為空。
startWindowIcon標識該Ability啟動頁面圖標資源文件的索引。該標簽僅適用于page類型的Ability。取值示例:$media:icon。字符串可缺省,缺省值為空。
startWindowBackground標識該Ability啟動頁面背景顏色資源文件的索引。該標簽僅適用于page類型的Ability。取值示例:$color:red。字符串可缺省,缺省值為空。
removeMissionAfterTerminate該標簽標識Ability銷毀后是否從任務列表中移除任務。該標簽僅適用于page類型的Ability。true表示銷毀后移除任務, false表示銷毀后不移除任務。布爾值可缺省,缺省值為false。

不允許應用隱藏入口圖標

系統對無圖標應用實施嚴格管控,防止一些惡意應用故意配置無入口圖標,導致用戶找不到軟件所在的位置,無法操作卸載應用,在一定程度上保證用戶終端設備的安全。

入口圖標的設置: 需要在配置文件(config.json)中abilities配置下設置icon,label以及skills,而且skills的配置下必須同時包含“ohos.want.action.home” 和 “entity.system.home”。

{
  "module":{

    ...

    "abilities": [{
      "icon": "$media:icon",
      "label": "Login",
      "skills": [{
        "actions": ["ohos.want.action.home"],
        "entities": ["entity.system.home"],
        "uris": []
      }]
    }],

    ...

  }
}

如果應用確需隱藏入口圖標,需要配置AllowAppDesktopIconHide應用特權,具體配置方式參考[應用特權配置指南]。詳細的入口圖標及入口標簽的顯示規則如下。

  • HAP中包含Page類型的PageAbility
    • 配置文件(config.json)中abilities配置中設置了入口圖標
      • 該應用沒有隱藏圖標的特權
        • 系統將使用該PageAbility配置的icon作為入口圖標,并顯示在桌面上。用戶點擊該圖標,頁面跳轉到該PageAbility首頁。
        • 系統將使用該PageAbility配置的label作為入口標簽,并顯示在桌面上(如果沒有配置label,返回包名)。
      • 該應用具有隱藏圖標的特權
        • 桌面查詢時不返回應用信息,不會在桌面上顯示對應的入口圖標和標簽。
    • 配置文件(config.json)中abilities配置中未設置入口圖標
      • 該應用沒有隱藏圖標的特權
        • 系統將使用系統默認圖標作為入口圖標,并顯示在桌面上。用戶點擊該圖標,頁面跳轉到應用管理中對應的應用詳情頁面(參考下圖)。
        • 系統將使用應用的包名作為入口標簽,并顯示在桌面上。
      • 該應用具有隱藏圖標的特權
        • 桌面查詢時不返回應用信息,不會在桌面上顯示對應的入口圖標和標簽。
  • HAP中不包含Page類型的PageAbility
    • 該應用沒有隱藏圖標的特權
      • 系統將使用系統默認圖標作為入口圖標,并顯示在桌面上。用戶點擊該圖標,頁面跳轉到應用管理中對應的應用詳情頁面(參考下圖)。
      • 系統將使用應用的包名作為入口標簽,并顯示在桌面上。
    • 該應用具有隱藏圖標的特權
      • 桌面查詢時不返回應用信息,不會在桌面上顯示對應的入口圖標和標簽。

圖1 應用的詳情頁示意圖

應用的詳情頁例圖

注:應用詳情頁面中顯示的label可能與桌面上顯示的不同。如果非Page類型的PageAbility配置了入口圖標和label,那么詳情頁中顯示的即為配置的。

uriPermission對象的內部結構

表9****uriPermission對象的內部結構說明

屬性名稱含義數據類型是否可缺省
pathuriPermission標識的路徑,該標簽最大字節長度為255個字節。字符串不可缺省。
modeuriPermission的匹配模式。字符串可缺省,缺省值為default。

abilities示例:

"abilities": [
  {
    "name": ".EntryAbility",
    "description": "test main ability",
    // $media:ic_launcher 為媒體類資源
    "icon": "$media:ic_launcher",
    // $string:example 為字符串類資源
    "label": "$string:example",
    "launchType": "multiton",
    "orientation": "unspecified",
    "permissions": [],
    "visible": true,
    "skills": [
      {
        "actions": [
          "action.system.home"
        ],
        "entities": [
          "entity.system.home"
        ]
      }
    ],
    "configChanges": [
      "locale",
      "layout",
      "fontSize",
      "orientation"
    ],
    "type": "page",
    "startWindowIcon": "$media:icon",
    "startWindowBackground": "$color:red",
    "removeMissionAfterTerminate": true
  },
  {
    "name": ".PlayService",
    "description": "example play ability",
    "icon": "$media:ic_launcher",
    "label": "$string:example",
    "launchType": "multiton",
    "orientation": "unspecified",
    "visible": false,
    "skills": [
      {
        "actions": [
          "action.play.music",
          "action.stop.music"
        ],
        "entities": [
          "entity.audio"
        ]
      }
    ],
    "type": "service",
    "backgroundModes": [
      "audioPlayback"
    ]
  },
  {
    "name": ".UserADataAbility",
    "type": "data",
    "uri": "dataability://com.example.world.test.UserADataAbility",
    "visible": true
  }
]

skills對象的內部結構

表10****skills對象的內部結構說明

屬性名稱含義數據類型是否可缺省
actions標識能夠接收的want的action值,可以包含一個或多個action。取值通常為系統預定義的action值。字符串數組可缺省,缺省值為空。
entities標識能夠接收的want的Ability的類別(如視頻、桌面應用等),可以包含一個或多個entity。字符串數組可缺省,缺省值為空。
uris該標簽標識向want過濾器添加數據規范集合。該規范可以是只有數據類型(mimeType屬性),可以是只有URI,也可以是既有數據類型又有URI。 URI由其各個部分的單獨屬性指定:://:[]。該標簽可缺省,缺省值為空。 其中,scheme字段配置為uri時必配;當只設置數據類型(mimeType)時,則scheme字段為非必配項。

uris對象的內部結構

表11****uris對象的內部結構說明

屬性名稱含義數據類型是否可缺省
scheme標識uri的scheme值。字符串不可缺省。
host標識uri的host值。字符串可缺省,缺省值為空。
port標識uri的port值。字符串可缺省,缺省值為空。
pathStartWith標識uri的pathStartWith值。字符串可缺省,缺省值為空。
path標識uri的path值。字符串可缺省,缺省值為空。
pathRegx標識uri的pathRegx值。字符串可缺省,缺省值為空。
type標識uri的type值。type為MIME-TYPE屬性,為資源的媒體類型,常見的類型有"audio/aac","text/css"等。字符串可缺省,缺省值為空。

skills示例:

"skills": [
  {
    "actions": [
      "action.system.home"
    ],
    "entities": [
      "entity.system.home"
    ],
    "uris": [
      {
        "scheme": "http",
        "host": "www.example.com",
        "port": "8080",
        "path": "query/student/name",
        "type": "text/*"
      }
    ]
  }
]

reqPermissions權限申請

表12****reqPermissions權限申請字段說明

屬性名稱含義數據類型是否可缺省
name需要使用的權限名稱。字符串
reason描述申請權限的原因。需要做多語種適配。字符串分情況:當申請的權限為user_grant時,必須填寫此字段,否則不允許在應用市場上架;其他權限可缺省,缺省為空
usedScene描述權限使用的場景和時機。場景類型如下兩種: - ability:ability的名稱,可配置多個。 - when:調用時機,可填的值有inuse(使用時)、always(始終)。對象可缺省,缺省值為空。 when可缺省,缺省值為"inuse"

usedScene對象內部結構

表13****usedScene對象內部結構說明

屬性名稱含義數據類型是否可缺省
ability標識哪些Ability需要此權限,里面配置Ability的名稱。字符串數組可以缺省,缺省表示所有Ability都需要此權限。
when標識此權限的使用時間: inuse: 使用時需要此權限。 always: 所有時間都需要此權限。枚舉值可缺省,缺省值為空。

js對象的內部結構

表14****js對象的內部結構說明

屬性名稱含義數據類型是否可缺省
name標識JS Component的名字。字符串不可缺省。
pages標識JS Component的頁面用于列舉JS Component中每個頁面的路由信息,格式為“頁面路徑+頁面名稱”。其中,頁面路徑是以當前Ability的srcPath字段取值為基準,例如srcPath取值為EntryAbility,則JS Component頁面路徑需要從EntryAbility的下一層開始描述。該標簽取值為數組,數組第一個元素代表JS FA首頁。字符串數組不可缺省。
window用于定義與顯示窗口相關的配置。對象可缺省,缺省值見表15。
type標識JS應用的類型。取值范圍如下: normal:標識該JS Component為應用實例。 form:標識該JS Component為卡片實例。字符串可缺省,缺省值為"normal"。
mode定義JS組件的開發模式。對象可缺省,缺省值為空。

window對象的內部結構

表15****window對象的內部結構說明

屬性名稱含義數據類型是否可缺省
designWidth標識頁面設計基準寬度。以此為基準,根據實際設備寬度來縮放元素大小。數值可缺省,缺省值為720px。
autoDesignWidth標識頁面設計基準寬度是否自動計算。當配置為true時,designWidth將會被忽略,設計基準寬度由設備寬度與屏幕密度計算得出。布爾值可缺省,缺省值為false。

mode對象的內部結構

表16****mode對象的內部結構說明

屬性名稱含義數據類型是否可缺省
type定義JS組件的功能類型。字符串,取值為"pageAbility"、"form"可缺省,缺省值為pageAbility。
syntax定義JS組件的語法類型。字符串,取值為"hml","ets"可缺省,默認值為"hml"。

js示例:

"js": [
  {
    "name": ".EntryAbility",
    "pages": [
      "pages/index",
      "pages/detail/detail"
    ],
    "window": {
      "designWidth": 720,
      "autoDesignWidth": false
    },
    "type": "form",
    "mode": {
      "syntax": "ets",
      "type": "pageAbility"
    }
  }
]

shortcuts對象的內部結構

表17****shortcuts對象的內部結構說明

屬性名稱含義數據類型是否可缺省
shortcutId標識快捷方式的ID。字符串的最大長度為63字節。字符串不可缺省。
label標識快捷方式的標簽信息,即快捷方式對外顯示的文字描述信息。取值可以是描述性內容,也可以是標識label的資源索引。字符串最大長度為63字節。字符串可缺省,缺省為空。
icon標識快捷方式的圖標信息。取值為表示icon的資源索引。字符串可缺省,缺省為空。
intents標識快捷方式內定義的目標intent信息集合,每個intent可配置兩個子標簽,targetClass, targetBundle。對象數組可缺省,缺省為空。

intents對象的內部結構

表18****intents對象的內部結構說明

屬性名稱含義數據類型是否可缺省
targetClass標識快捷方式目標類名。字符串可缺省,缺省值為空。
targetBundle標識快捷方式目標Ability所在應用的包名。字符串可缺省,缺省值為空。

shortcuts示例:

"shortcuts": [
  {
    "shortcutId": "id",
    // $string:shortcut 為配置的字符串資源值
    "label": "$string:shortcut",
    "intents": [
      {
        "targetBundle": "com.example.world.test",
        "targetClass": "com.example.world.test.entry.EntryAbility"
      }
    ]
  }
]

forms對象的內部結構

表19****forms對象的內部結構說明

屬性名稱含義數據類型是否可缺省
name標識卡片的類名。字符串最大長度為127字節。字符串不可缺省。
description標識卡片的描述。取值可以是描述性內容,也可以是對描述性內容的資源索引,以支持多語言。字符串最大長度為255字節。字符串可缺省,缺省為空。
isDefault標識該卡片是否為默認卡片,每個Ability有且只有一個默認卡片。 true:默認卡片。 false:非默認卡片。布爾值不可缺省。
type標識卡片的類型。取值范圍如下: JS:JS卡片。 Java:Java卡片。字符串不可缺省。
colorMode標識卡片的主題樣式,取值范圍如下: auto:自適應。 dark:深色主題。 light:淺色主題。字符串可缺省,缺省值為"auto"。
supportDimensions標識卡片支持的外觀規格,取值范圍: 1 * 2:表示1行2列的二宮格。 2 * 1:表示2行1列的二宮格。 2 * 2:表示2行2列的四宮格。 2 * 4:表示2行4列的八宮格。 4 * 4:表示4行4列的十六宮格。字符串數組不可缺省。
defaultDimension標識卡片的默認外觀規格,取值必須在該卡片supportDimensions配置的列表中。字符串不可缺省。
updateEnabled標識卡片是否支持周期性刷新,取值范圍: true:表示支持周期性刷新,可以在定時刷新(updateDuration)和定點刷新(scheduledUpdateTime)兩種方式任選其一,優先選擇定時刷新。 false:表示不支持周期性刷新。布爾類型不可缺省。
scheduledUpdateTime標識卡片的定點刷新的時刻,采用24小時制,精確到分鐘。字符串可缺省,缺省值為"0:0"。
updateDuration標識卡片定時刷新的更新周期,單位為30分鐘,取值為自然數。 當取值為0時,表示該參數不生效。 當取值為正整數N時,表示刷新周期為30*N分鐘。數值可缺省,缺省值為"0"。
formConfigAbility標識用于調整卡片的設施或活動的名稱。字符串可缺省,缺省值為空。
jsComponentName標識JS卡片的Component名稱。字符串最大長度為127字節。僅當卡片類型為JS卡片時,需要配置該標簽。字符串可缺省,缺省值為空。
metaData標識卡片的自定義信息,包含customizeData數組標簽。對象可缺省,缺省值為空。
formVisibleNotify標識是否允許卡片使用卡片可見性通知。 true:允許。 false:不允許。布爾值可缺省,缺省值為false。

customizeData對象內部結構

表20****customizeData對象內部結構說明

屬性名稱含義數據類型是否可缺省
name標識數據項的鍵名稱。字符串最大長度為255字節。字符串可缺省,缺省值為空。
value標識數據項的值。字符串最大長度為255字節。字符串可缺省,缺省值為空。
extra標識當前custom數據的格式,取值為表示extra的資源值。字符串可缺省,缺省值為空。

forms示例:

"forms": [
  {
    "name": "Form_Js",
    "description": "It's Js Form",
    "type": "JS",
    "jsComponentName": "card",
    "colorMode": "auto",
    "isDefault": true,
    "updateEnabled": true,
    "scheduledUpdateTime": "11:00",
    "updateDuration": 1,
    "defaultDimension": "2*2",
    "supportDimensions": [
      "2*2",
      "2*4",
      "4*4"
    ]
  },
  {
    "name": "Form_Js",
    "description": "It's JS Form",
    "type": "Js",
    "colorMode": "auto",
    "isDefault": false,
    "updateEnabled": true,
    "scheduledUpdateTime": "21:05",
    "updateDuration": 1,
    "defaultDimension": "1*2",
    "supportDimensions": [
      "1*2"
    ],
    "landscapeLayouts": [
      "$layout:ability_form"
    ],
    "portraitLayouts": [
      "$layout:ability_form"
    ],
    "formConfigAbility": "ability://com.example.myapplication.fa/.EntryAbility",
    "metaData": {
      "customizeData": [
        {
          "name": "originWidgetName",
          "value": "com.example.weather.testWidget"
        }
      ]
    }
  }
]

distroFilter對象的內部結構

表21****distroFilter對象的內部結構說明

屬性名稱含義數據類型是否可缺省
apiVersion標識支持的apiVersion范圍。對象數組可缺省,缺省值為空。
screenShape標識屏幕形狀的支持策略。對象數組可缺省,缺省值為空。
screenWindow標識應用運行時窗口的分辨率支持策略。該字段僅支持對輕量級智能穿戴設備進行配置。對象數組可缺省,缺省值為空。
screenDensity標識屏幕的像素密度(dpi:Dots Per Inch)。對象數組可缺省,缺省值為空。
countryCode標識分發應用時的國家碼。具體值參考ISO-3166-1的標準,支持多個國家和地區的枚舉定義。對象數組可缺省,缺省值為空。

apiVersion對象的內部結構

表22****apiVersion對象的內部結構說明

屬性名稱含義數據類型是否可缺省
policy標識該子屬性取值規則。配置為“exclude”或“include”。 - exclude:表示需要排除的value屬性。 - include:表示需要包含的value屬性。字符串不可缺省。
value支持的取值為API Version存在的整數值,例如4、5、6。場景示例:某應用,針對相同設備型號,同時在網的為使用API 5和API 6開發的兩個軟件版本,則允許上架2個entry類型的安裝包,分別支持到對應設備側軟件版本的分發。數組不可缺省。

screenShape對象的內部結構

表23****screenShape對象的內部結構說明

屬性名稱含義數據類型是否可缺省
policy標識該子屬性取值規則。配置為“exclude”或“include”。 - exclude:表示需要排除的value屬性。 - include:表示需要包含的value屬性。字符串不可缺省。
value支持的取值為API Version存在的整數值,例如4、5、6。場景示例:某應用,針對相同設備型號,同時在網的為使用API 5和API 6開發的兩個軟件版本,則允許上架2個entry類型的安裝包,分別支持到對應設備側軟件版本的分發。數組不可缺省。

screenWindow對象的內部結構

表24****screenWindow對象的內部結構說明

屬性名稱含義數據類型是否可缺省
policy標識該子屬性取值規則。配置為“exclude”或“include”。 - exclude:表示需要排除的value屬性。 - include:表示需要包含的value屬性。字符串不可缺省。
value支持的取值為API Version存在的整數值,例如4、5、6。場景示例:某應用,針對相同設備型號,同時在網的為使用API 5和API 6開發的兩個軟件版本,則允許上架2個entry類型的安裝包,分別支持到對應設備側軟件版本的分發。數組不可缺省。

screenDensity對象的內部結構

表25****screenDensity對象的內部結構說明

屬性名稱含義數據類型是否可缺省
policy標識該子屬性取值規則。配置為“exclude”或“include”。 - exclude:表示需要排除的value屬性。 - include:表示需要包含的value屬性。字符串不可缺省。
value取值范圍如下: sdpi:表示小規模的屏幕密度(Small-scale Dots Per Inch),適用于dpi取值為(0,120]的設備。 mdpi:表示中規模的屏幕密度(Medium-scale Dots Per Inch),適用于dpi取值為(120,160]的設備。 ldpi:表示大規模的屏幕密度(Large-scale Dots Per Inch),適用于dpi取值為(160,240]的設備。 xldpi:表示特大規模的屏幕密度(Extra Large-scale Dots Per Inch),適用于dpi取值為(240,320]的設備。 xxldpi:表示超大規模的屏幕密度(Extra Extra Large-scale Dots Per Inch),適用于dpi取值為(320,480]的設備。 xxxldpi:表示超特大規模的屏幕密度(Extra Extra Extra Large-scale Dots Per Inch),適用于dpi取值為(480,640]的設備。數組不可缺省。

countryCode對象的內部結構

表26****countryCode對象的內部結構說明

屬性名稱含義數據類型是否可缺省
policy標識該子屬性取值規則。配置為“exclude”或“include”。 - exclude:表示需要排除的value屬性。 - include:表示需要包含的value屬性。字符串不可缺省。
value該標簽標識應用需要分發的國家碼,標簽為字符串數組,子串表示支持的國家或地區,由兩個大寫字母表示。字符串數組不可缺省。

distroFilter示例:

"distroFilter":  {
  "apiVersion": {
    "policy": "include",
    "value": [4,5]
  },
  "screenShape": {
    "policy": "include",
    "value": ["circle","rect"]
  },
  "screenWindow": {
    "policy": "include",
    "value": ["454*454","466*466"]
  },
  "screenDensity":{
    "policy": "exclude",
    "value": ["ldpi","xldpi"]
  },
  "countryCode": {
    "policy":"include",
    "value":["CN","HK"]
  }
}

commonEvents對象的內部結構

表27****commonEvents對象的內部結構說明

屬性名稱含義數據類型是否可缺省
name標識靜態公共事件名稱,該標簽最大長度為127字節。字符串不可缺省。
permission此標簽標識實現靜態公共事件所需要申請的權限,該標簽最大長度為255字節。字符串可缺省,缺省值為空。
data標識配置當前靜態公共事件要攜帶的附加數據數組。字符串數組可缺省,缺省值為空。
type該標簽用于配置當前靜態公共事件的分類數組。字符串數組可缺省,缺省值為空。
events此標簽標識可接收的意圖的一組事件值。一般由系統預定義,也可以自定義。字符串數組不可缺省。

commonEvents示例:

"commonEvents": [
  {
    "name": ".EntryAbility",
    "permission": "ohos.permission.GET_BUNDLE_INFO",
    "data": [
      "com.example.demo",
      "100"
    ],
    "events": [
      "install",
      "update"
    ]
  }
]

testRunner對象的內部結構

表28****testRunner對象的內部結構說明

屬性名稱含義數據類型是否可缺省
name標識測試框架對象名稱,該標簽最大長度為255字節。字符串不可缺省。
srcPath標識測試框架代碼路徑,該標簽最大長度為255字節。字符串不可缺省。
"testRunner": {
  "name": "myTestRunnerName",
  "srcPath": "etc/test/TestRunner.ts"
}

`HarmonyOSOpenHarmony鴻蒙文檔籽料:mau123789是v直接拿`

新文檔.png

definePermission僅支持系統應用配置,三方應用配置不生效。

definePermissions對象內部結構

表29****definePermissions對象內部結構說明

屬性名稱含義數據類型是否可缺省
name標識權限的名稱,該標簽最大長度為255字節。字符串不可缺省。
grantMode標識權限的授予方式,支持如下兩種授予模式如下: - system_grant:安裝后系統自動授予該權限。 - user_grant:使用時動態申請,用戶授權后才可使用。字符串可缺省,缺省值為system_grant。
availableLevel標識權限限制類別,可選值如下: - system_core:系統核心權限。 - system_basic:系統基礎權限。 - normal:普通權限。所有應用允許申請的權限。字符串可缺省,缺省值為normal。
provisionEnable標識權限是否支持證書方式申請權限,包括高級別的權限。配置為true標識開發者可以通過provision方式申請權限。布爾值可缺省,缺省值為true。
distributedSceneEnabled標識權限是否支持分布式場景下使用該權限。布爾值可缺省,缺省值為false。
label標識權限的簡短描述,配置為對描述內容的資源索引。字符串可缺省,缺省值為空。
description標識權限的詳細描述,可以是字符串(最大長度為255字節),或者為對描述內容的資源索引。字符串可缺省,缺省值為空。

審核編輯 黃宇

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

    關注

    1

    文章

    505

    瀏覽量

    17805
  • 鴻蒙
    +關注

    關注

    57

    文章

    2311

    瀏覽量

    42747
收藏 人收藏

    評論

    相關推薦

    鴻蒙開發教程-管理組件狀態

    組件層級雙向同步狀態是指@Provide修飾的狀態變量自動對提供者組件的所有后代組件可用,后代組件通過使用@Consume裝飾的變量來獲得對提供的狀態變量的訪問。
    的頭像 發表于 01-22 21:46 ?1287次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b>教程-管理<b class='flag-5'>組件</b>狀態

    鴻蒙ArkUI開發-Video組件的使用

    以視頻功能為例,在應用開發過程中,我們需要通過ArkUI提供的Video組件為應用增加基礎的視頻播放功能。借助Video組件,我們可以實現視頻的播放功能并控制其播放狀態。常見的視頻播放場景包括觀看網絡上的較為流行的短視頻,也包括
    的頭像 發表于 01-23 16:59 ?1264次閱讀
    <b class='flag-5'>鴻蒙</b>ArkUI<b class='flag-5'>開發</b>-Video<b class='flag-5'>組件</b>的使用

    鴻蒙開發基礎-Web組件之cookie操作

    }) ... } ... 本文章主要是對鴻蒙開發當中ArkTS語言的基礎應用實戰,Web組件里的cookie操作。更多的鴻蒙應用開發
    發表于 01-14 21:31

    鴻蒙開發OpenHarmony組件復用案例

    概述開發應用時,有些場景下的自定義組件具有相同的組件布局結構,僅有狀態變量等承載數據的差異。這樣的組件緩存起來,需要使用到該
    發表于 01-15 17:37

    鴻蒙開發-ArkUI 組件基礎

    1 組件介紹 組件(Component)是界面搭建與顯示的最小單位,HarmonyOS ArkUI聲明式開發范式為開發者提供了豐富多樣的UI組件
    發表于 01-17 19:31

    HarmonyOS實戰—布局和組件概述

    組件概述屏幕展示出來的元素,都稱之為組件。比如華為已經提供的:文本,圖片,進度條,輸入框等。注意點:組件在未被添加到布局中時,既無法顯示也無法交互,因此一個用戶界面至少包含一個布局。
    發表于 08-12 12:23

    鴻蒙有3D顯示組件嗎?

    鴻蒙有3D顯示組件嗎?
    發表于 11-13 07:33

    鴻蒙開源第三方組件資料合集

    1、鴻蒙開源第三方組件——日志工具組件Timber_ohosTimber_ohos是一個帶有小型可擴展API的日志工具組件,它可以給開發者提
    發表于 03-23 09:53

    如何在鴻蒙的webview上面放其它組件

    需求:需要在鴻蒙的webview上顯示一個網頁,在webview上面再添加一個文本,但是無論怎么webview都會覆蓋掉其它組件,這個是鴻蒙把webview的優先級設置 最高了嗎?無論是什么布局都無法 在webview上面放 其
    發表于 03-28 10:00

    鴻蒙ArkUI開發-Tabs組件的使用

    鴻蒙ArkUI開發-Tabs組件的使用
    的頭像 發表于 01-19 16:01 ?1771次閱讀
    <b class='flag-5'>鴻蒙</b>ArkUI<b class='flag-5'>開發</b>-Tabs<b class='flag-5'>組件</b>的使用

    鴻蒙OS開發實例:【組件化模式】

    組件化一直是移動端比較流行的開發方式,有著編譯運行快,業務邏輯分明,任務劃分清晰等優點,針對Android端的組件化;與Android端的組件化相比,HarmonyOS的
    的頭像 發表于 04-07 17:44 ?594次閱讀
    <b class='flag-5'>鴻蒙</b>OS<b class='flag-5'>開發</b>實例:【<b class='flag-5'>組件</b>化模式】

    鴻蒙開發:【PageAbility組件概述+配置

    PageAbility是包含UI、提供展示UI能力的應用組件,主要用于與用戶交互。
    的頭像 發表于 06-17 18:05 ?459次閱讀

    鴻蒙開發Ability Kit程序框架服務:FA模型與Stage模型應用組件互通綜述

    FA模型與Stage模型是兩套不同的應用模型,他們擁有各自的組件。FA模型提供三種應用組件,分別是PageAbility、ServiceAbility和DataAbility。Stage模型提供了兩種應用
    的頭像 發表于 06-24 16:43 ?470次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b>Ability Kit程序框架服務:FA模型與Stage模型應用<b class='flag-5'>組件</b>互通綜述

    鴻蒙開發Ability Kit程序框架服務:Stage模型綁定FA模型ServiceAbility

    本小節介紹Stage模型的兩種應用組件如何綁定FA模型ServiceAbility組件
    的頭像 發表于 06-25 21:47 ?260次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b>Ability Kit程序框架服務:Stage模型綁定FA模型<b class='flag-5'>ServiceAbility</b>

    鴻蒙開發Ability Kit程序框架服務:ServiceAbility切換 組件切換

    FA模型中的ServiceAbility對應Stage模型中的ServiceExtensionAbility。Stage模型下的ServiceExtensionAbility為系統API,只有系統
    的頭像 發表于 06-28 10:24 ?277次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b>Ability Kit程序框架服務:<b class='flag-5'>ServiceAbility</b>切換 <b class='flag-5'>組件</b>切換