先通過一個示例,整體認識一下module.json5配置文件。
- {
- "module": {
- "name": "entry",
- "type": "entry",
- "description": "$string:module_desc",
- "mainElement": "EntryAbility",
- "deviceTypes": [
- "tv",
- "tablet"
- ],
- "deliveryWithInstall": true,
- "installationFree": false,
- "pages": "$profile:main_pages",
- "virtualMachine": "ark",
- "metadata": [
- {
- "name": "string",
- "value": "string",
- "resource": "$profile:distributionFilter_config"
- }
- ],
- "abilities": [
- {
- "name": "EntryAbility",
- "srcEntry": "./ets/entryability/EntryAbility.ts",
- "description": "$string:EntryAbility_desc",
- "icon": "$media:icon",
- "label": "$string:EntryAbility_label",
- "startWindowIcon": "$media:icon",
- "startWindowBackground": "$color:start_window_background",
- "exported": true,
- "skills": [
- {
- "entities": [
- "entity.system.home"
- ],
- "actions": [
- "ohos.want.action.home"
- ]
- }
- ]
- }
- ],
- "requestPermissions": [
- {
- "name": "ohos.abilitydemo.permission.PROVIDER",
- "reason": "$string:reason",
- "usedScene": {
- "abilities": [
- "FormAbility"
- ],
- "when": "inuse"
- }
- }
- ]
- }
- }
module.json5配置文件包含以下標簽。
屬性名稱 | 含義 | 數(shù)據(jù)類型 | 是否可缺省 |
---|---|---|---|
name | 標識當(dāng)前Module的名稱,標簽值采用字符串表示(最大長度31個字節(jié)),該名稱在整個應(yīng)用要唯一,僅支持英文字符。 | 字符串 | 該標簽不可缺省。 |
type | 標識當(dāng)前Module的類型。類型有兩種,分別: - entry:應(yīng)用的主模塊。 - feature:應(yīng)用的動態(tài)特性模塊。 | 字符串 | 該標簽不可缺省。 |
srcEntry | 標識當(dāng)前Module所對應(yīng)的代碼路徑,標簽值為字符串(最長為127字節(jié))。 | 字符串 | 該標簽可缺省,缺省值為空。 |
description | 標識當(dāng)前Module的描述信息,標簽值是字符串類型(最長255字節(jié))或?qū)γ枋鰞?nèi)容的字符串資源索引。 | 字符串 | 該標簽可缺省,缺省值為空。 |
process | 標識當(dāng)前Module的進程名,標簽值為字符串類型(最長為31個字節(jié))。如果在HAP標簽下配置了process,該應(yīng)用的所有UIAbility、DataShareExtensionAbility、ServiceExtensionAbility都運行在該進程中。 說明: - 僅支持系統(tǒng)應(yīng)用配置,三方應(yīng)用配置不生效。 | 字符串 | 可缺省,缺省為app.json5文件下app標簽下的bundleName。 |
mainElement | 標識當(dāng)前Module的入口UIAbility名稱或者ExtensionAbility名稱。標簽最大字節(jié)長度為255。 | 字符串 | 該標簽可缺省,缺省值為空。 |
標識當(dāng)前Module可以運行在哪類設(shè)備上,標簽值采用字符串?dāng)?shù)組的表示。 | 字符串?dāng)?shù)組 | 該標簽不可缺省。 | |
deliveryWithInstall | 標識當(dāng)前Module是否在用戶主動安裝的時候安裝,表示該Module對應(yīng)的HAP是否跟隨應(yīng)用一起安裝。 - true:主動安裝時安裝。 - false:主動安裝時不安裝。 | 布爾值 | 該標簽不可缺省。 |
installationFree | 標識當(dāng)前Module是否支持免安裝特性。 - true:表示支持免安裝特性,且符合免安裝約束。 - false:表示不支持免安裝特性。 說明: - 當(dāng)應(yīng)用的entry類型Module的該字段配置為true時,該應(yīng)用的feature類型的該字段也需要配置為true。 - 當(dāng)應(yīng)用的entry類型Module的該字段配置為false時,該應(yīng)用的feature類型的該字段根據(jù)業(yè)務(wù)需求配置true或false。 | 布爾值 | 該標簽不可缺省。 |
virtualMachine | 標識當(dāng)前Module運行的目標虛擬機類型,供云端分發(fā)使用,如應(yīng)用市場和分發(fā)中心。 該標簽值為字符串。如果目標虛擬機類型為ArkTS引擎,則其值為“ark+版本號”。 | 字符串 | 該標簽由IDE構(gòu)建HAP的時候自動插入。 |
標識當(dāng)前Module的profile資源,用于列舉每個頁面信息。該標簽最大長度為255個字節(jié)。 | 字符串 | 在有UIAbility的場景下,該標簽不可缺省。 | |
標識當(dāng)前Module的自定義元信息,標簽值為數(shù)組類型,只對當(dāng)前Module、UIAbility、ExtensionAbility生效。 | 對象數(shù)組 | 該標簽可缺省,缺省值為空。 | |
標識當(dāng)前Module中UIAbility的配置信息,標簽值為數(shù)組類型,只對當(dāng)前UIAbility生效。 | 對象 | 該標簽可缺省,缺省值為空。 | |
標識當(dāng)前Module中ExtensionAbility的配置信息,標簽值為數(shù)組類型,只對當(dāng)前ExtensionAbility生效。 | 對象 | 該標簽可缺省,缺省值為空。 | |
標識當(dāng)前應(yīng)用運行時需向系統(tǒng)申請的權(quán)限集合。 | 對象 | 該標簽可缺省,缺省值為空。 | |
標識當(dāng)前Module用于支持對測試框架的配置。 | 對象 | 該標簽可缺省,缺省值為空。 |
設(shè)備類型 | 枚舉值 | 說明 |
---|---|---|
平板 | tablet | - |
智慧屏 | tv | - |
智能手表 | wearable | 系統(tǒng)能力較豐富的手表,具備電話功能。 |
車機 | car | - |
手機 | phone | - |
deviceTypes示例:
- {
- "module": {
- "name": "myHapName",
- "type": "feature",
- "deviceTypes" : [
- "tablet"
- ]
- }
- }
該標簽是一個profile文件資源,用于指定描述頁面信息的配置文件。
- {
- "module": {
- // ...
- "pages": "$profile:main_pages", // 通過profile下的資源文件配置
- }
- }
在開發(fā)視圖的resources/base/profile下面定義配置文件main_pages.json,其中文件名(main_pages)可自定義,需要和前文中pages標簽指定的信息對應(yīng),配置文件中列舉了當(dāng)前應(yīng)用組件中的頁面信息。
屬性名稱 | 含義 | 數(shù)據(jù)類型 | 是否可缺省 |
---|---|---|---|
src | 描述有關(guān)JavaScript模塊中所有頁面的路由信息,包括頁面路徑和頁面名稱。該值是一個字符串?dāng)?shù)組,其中每個元素表示一個頁面。 | 字符串?dāng)?shù)組 | 該標簽不可缺省。 |
window | 用于定義與顯示窗口相關(guān)的配置。 | 對象 | 該標簽可缺省,缺省值為空。 |
屬性名稱 | 含義 | 數(shù)據(jù)類型 | 是否可缺省 |
---|---|---|---|
designWidth | 標識頁面設(shè)計基準寬度。以此為基準,根據(jù)實際設(shè)備寬度來縮放元素大小。 | 數(shù)值 | 可缺省,缺省值為720px。 |
autoDesignWidth | 標識頁面設(shè)計基準寬度是否自動計算。當(dāng)配置為true時,designWidth將會被忽略,設(shè)計基準寬度由設(shè)備寬度與屏幕密度計算得出。 | 布爾值 | 可缺省,缺省值為false。 |
- {
- "src": [
- "pages/index/mainPage",
- "pages/second/payment",
- "pages/third/shopping_cart",
- "pages/four/owner"
- ]
- }
該標簽標識HAP的自定義元信息,標簽值為數(shù)組類型,包含name,value,resource三個子標簽。
屬性名稱 | 含義 | 數(shù)據(jù)類型 | 是否可缺省 |
---|---|---|---|
name | 該標簽標識數(shù)據(jù)項的鍵名稱,字符串類型(最大長度255字節(jié))。 | 字符串 | 該標簽可缺省,缺省值為空。 |
value | 該標簽標識數(shù)據(jù)項的值,標簽值為字符串(最大長度255字節(jié))。 | 字符串 | 該標簽可缺省,缺省值為空。 |
resource | 該標簽標識定義用戶自定義數(shù)據(jù)格式,標簽值為標識該數(shù)據(jù)的資源的索引值。該標簽最大字節(jié)長度為255字節(jié)。 | 字符串 | 該標簽可缺省,缺省值為空。 |
- {
- "module": {
- "metadata": [{
- "name": "module_metadata",
- "value": "a test demo for module metadata",
- "resource": "$profile:shortcuts_config",
- }],
- "abilities": [{
- "metadata": [{
- "name": "ability_metadata",
- "value": "a test demo for ability",
- "resource": "$profile:config_file"
- },
- {
- "name": "ability_metadata_2",
- "value": "a string test",
- "resource": "$profile:config_file"
- }],
- }],
- "extensionAbilities": [{
- "metadata": [{
- "name": "extensionAbility_metadata",
- "value": "a test for extensionAbility",
- "resource": "$profile:config_file"
- },
- {
- "name": "extensionAbility_metadata_2",
- "value": "a string test",
- "resource": "$profile:config_file"
- }],
- }]
- }
- }
abilities標簽描述UIAbility組件的配置信息,標簽值為數(shù)組類型,該標簽下的配置只對當(dāng)前UIAbility生效。
屬性名稱 | 含義 | 數(shù)據(jù)類型 | 是否可缺省 |
---|---|---|---|
name | 標識當(dāng)前UIAbility組件的名稱,該名稱在整個應(yīng)用要唯一,標簽值采用字符串表示(最大長度127個字節(jié)),僅支持英文字符。 | 字符串 | 該標簽不可缺省。 |
srcEntry | 該標簽標識入口UIAbility的代碼路徑,標簽值為字符串(最長為127字節(jié))。 | 字符串 | 該標簽不可缺省。 |
標識當(dāng)前UIAbility組件的啟動模式,可選標簽值: - multiton:多實例模式,每次啟動創(chuàng)建一個新的實例。 - singleton:單實例模式,僅第一次啟動創(chuàng)建新實例。 - specified:指定實例模式,運行時由開發(fā)者決定是否創(chuàng)建新實例。 | 字符串 | 可缺省,該標簽缺省為“singleton”。 | |
description | 標識當(dāng)前UIAbility組件的描述信息,標簽值是字符串類型(最長255字節(jié))或?qū)γ枋鰞?nèi)容的資源索引,要求采用資源索引方式,以支持多語言。 | 字符串 | 該標簽可缺省,缺省值為空。 |
icon | 標識當(dāng)前UIAbility組件的圖標,標簽值為圖標資源文件的索引。 | 字符串 | 該標簽可缺省,缺省值為空。 如果UIAbility被配置為MainElement,該標簽必須配置。 |
label | 標識當(dāng)前UIAbility組件對用戶顯示的名稱,標簽值配置為該名稱的資源索引以支持多語言。 如果UIAbility被配置當(dāng)前Module的mainElement時,該標簽必須配置,且應(yīng)用內(nèi)唯一。 | 字符串 | 該標簽不可缺省。 |
permissions | 標識當(dāng)前UIAbility組件自定義的權(quán)限信息。當(dāng)其他應(yīng)用訪問該UIAbility時,需要申請相應(yīng)的權(quán)限信息。 一個數(shù)組元素為一個權(quán)限名稱。通常采用反向域名格式(最大255字節(jié)),取值為系統(tǒng)預(yù)定義的權(quán)限。 | 字符串?dāng)?shù)組 | 該標簽可缺省,缺省值為空。 |
標識當(dāng)前UIAbility組件的元信息。 | 對象數(shù)組 | 該標簽可缺省,缺省值為空。 | |
exported | 標識當(dāng)前UIAbility組件是否可以被其他應(yīng)用調(diào)用。 - true:表示可以被其他應(yīng)用調(diào)用。 - false:表示不可以被其他應(yīng)用調(diào)用。 | 布爾值 | 該標簽可缺省,缺省值為false。 |
continuable | 標識當(dāng)前UIAbility組件是否可以遷移。 - true:表示可以被遷移。 - false:表示不可以被遷移。 說明 當(dāng)前版本暫不支持跨設(shè)備能力。 | 布爾值 | 該標簽可缺省,缺省值為false。 |
標識當(dāng)前UIAbility組件或ExtensionAbility組件能夠接收的Want的特征集,為數(shù)組格式。 配置規(guī)則: - 對于Entry類型的HAP,應(yīng)用可以配置多個具有入口能力的skills標簽(即配置了ohos.want.action.home和entity.system.home)。 - 對于Feature類型的HAP,只有應(yīng)用可以配置具有入口能力的skills標簽,服務(wù)不允許配置。 | 對象數(shù)組 | 該標簽可缺省,缺省值為空。 | |
backgroundModes | 標識當(dāng)前UIAbility組件的長時任務(wù)集合。指定用于滿足特定類型的長時任務(wù)。 長時任務(wù)類型有如下: - dataTransfer:通過網(wǎng)絡(luò)/對端設(shè)備進行數(shù)據(jù)下載、備份、分享、傳輸?shù)葮I(yè)務(wù)。 - audioPlayback:音頻輸出業(yè)務(wù)。 - audioRecording:音頻輸入業(yè)務(wù)。 - location:定位、導(dǎo)航業(yè)務(wù)。 - bluetoothInteraction:藍牙掃描、連接、傳輸業(yè)務(wù)(穿戴)。 - multiDeviceConnection:多設(shè)備互聯(lián)業(yè)務(wù)。 - wifiInteraction:Wi-Fi掃描、連接、傳輸業(yè)務(wù)(克隆多屏)。 - voip:音視頻電話,VoIP業(yè)務(wù)。 - taskKeeping:計算業(yè)務(wù)。 | 字符串?dāng)?shù)組 | 該標簽可缺省,缺省值為空。 |
startWindowIcon | 標識當(dāng)前UIAbility組件啟動頁面圖標資源文件的索引。取值示例:$media:icon。 該標簽最大字節(jié)長度為255。 | 字符串 | 不可缺省。 |
startWindowBackground | 標識當(dāng)前UIAbility組件啟動頁面背景顏色資源文件的索引。取值示例:$color:red。 該標簽最大字節(jié)長度為255。 | 字符串 | 不可缺省。 |
removeMissionAfterTerminate | 標識當(dāng)前UIAbility組件銷毀后是否從任務(wù)列表中移除任務(wù),為布爾類型: - true表示銷毀后移除任務(wù)。 - false表示銷毀后不移除任務(wù)。 | 布爾值 | 該標簽可缺省,缺省值為false。 |
orientation | 標識當(dāng)前UIAbility組件啟動時的方向。該方向的取值范圍包括: - unspecified:未指定方向,由系統(tǒng)自動判斷顯示方向。 - landscape:橫屏。 - portrait:豎屏。 - landscape_inverted:反向橫屏。 - portrait_inverted:反向豎屏。 - auto_rotation:隨傳感器旋轉(zhuǎn)。 - auto_rotation_landscape:傳感器橫屏旋轉(zhuǎn),包括了橫屏和反向橫屏。 - auto_rotation_portrait:傳感器豎屏旋轉(zhuǎn),包括了豎屏和反向豎屏。 - auto_rotation_restricted:傳感器開關(guān)打開,方向可隨傳感器旋轉(zhuǎn)。 - auto_rotation_landscape_restricted:傳感器開關(guān)打開,方向可隨傳感器旋轉(zhuǎn)為橫屏, 包括了橫屏和反向橫屏。 - auto_rotation_portrait_restricted:傳感器開關(guān)打開,方向隨可傳感器旋轉(zhuǎn)為豎屏, 包括了豎屏和反向豎屏。 - locked:傳感器開關(guān)關(guān)閉,方向鎖定。 | 字符串 | 該標簽可缺省,缺省值為unspecified。 |
supportWindowMode | 標識當(dāng)前UIAbility組件所支持的窗口模式,包含: - fullscreen:全屏模式。 - split:分屏模式。 - floating:懸浮窗模式。 | 字符串?dāng)?shù)組 | 該標簽可缺省,缺省值為 ["fullscreen", "split", "floating"]。 |
priority | 標識當(dāng)前UIAbility組件的優(yōu)先級,僅支持系統(tǒng)應(yīng)用配置,三方應(yīng)用配置不生效。隱式查詢時,優(yōu)先級越高,UIAbility在返回列表越靠前。該標簽取值為integer類型,取值范圍0-10。數(shù)值越大,優(yōu)先級越高。 | 數(shù)值 | 該標簽可缺省,缺省值為0。 |
maxWindowRatio | 標識當(dāng)前UIAbility組件支持的最大的寬高比。該標簽最小取值為0。 | 數(shù)值 | 該標簽可缺省,缺省值為平臺支持的最大的寬高比。 |
minWindowRatio | 標識當(dāng)前UIAbility組件支持的最小的寬高比。該標簽最小取值為0。 | 數(shù)值 | 該標簽可缺省,缺省值為平臺支持的最小的寬高比。 |
maxWindowWidth | 標識當(dāng)前UIAbility組件支持的最大的窗口寬度,寬度單位為vp。該標簽最小取值為0。 | 數(shù)值 | 該標簽可缺省,缺省值為平臺支持的最大的窗口寬度。 |
minWindowWidth | 標識當(dāng)前UIAbility組件支持的最小的窗口寬度, 寬度單位為vp。該標簽最小取值為0。 | 數(shù)值 | 該標簽可缺省,缺省值為平臺支持的最小的窗口寬度。 |
maxWindowHeight | 標識當(dāng)前UIAbility組件支持的最大的窗口高度, 高度單位為vp。該標簽最小取值為0。 | 數(shù)值 | 該標簽可缺省,缺省值為平臺支持的最大的窗口高度。 |
minWindowHeight | 標識當(dāng)前UIAbility組件支持的最小的窗口高度, 高度單位為vp。該標簽最小取值為0。 | 數(shù)值 | 該標簽可缺省,缺省值為平臺支持的最小的窗口高度。 |
excludeFromMissions | 標識當(dāng)前UIAbility組件是否在最近任務(wù)列表中顯示。 - true:表示不在任務(wù)列表中顯示。 - false:表示在任務(wù)列表中顯示。 說明: - 僅支持系統(tǒng)應(yīng)用配置,三方應(yīng)用配置不生效。 | 布爾值 | 該標簽可缺省,缺省值為false。 |
abilities示例:
- {
- "abilities": [{
- "name": "EntryAbility",
- "srcEntry": "./ets/entryability/EntryAbility.ts",
- "launchType":"singleton",
- "description": "$string:description_main_ability",
- "icon": "$media:icon",
- "label": "Login",
- "permissions": [],
- "metadata": [],
- "exported": true,
- "continuable": true,
- "skills": [{
- "actions": ["ohos.want.action.home"],
- "entities": ["entity.system.home"],
- "uris": []
- }],
- "backgroundModes": [
- "dataTransfer",
- "audioPlayback",
- "audioRecording",
- "location",
- "bluetoothInteraction",
- "multiDeviceConnection",
- "wifiInteraction",
- "voip",
- "taskKeeping"
- ],
- "startWindowIcon": "$media:icon",
- "startWindowBackground": "$color:red",
- "removeMissionAfterTerminate": true,
- "orientation": " ",
- "supportWindowMode": ["fullscreen", "split", "floating"],
- "maxWindowRatio": 3.5,
- "minWindowRatio": 0.5,
- "maxWindowWidth": 2560,
- "minWindowWidth": 1400,
- "maxWindowHeight": 300,
- "minWindowHeight": 200,
- "excludeFromMissions": false
- }]
- }
該標簽標識UIAbility組件或者ExtensionAbility組件能夠接收的Want的特征。
屬性名稱 | 含義 | 數(shù)據(jù)類型 | 是否可缺省 |
---|---|---|---|
actions | 標識能夠接收的Want的Action值的集合,取值通常為系統(tǒng)預(yù)定義的action值,也允許自定義。 | 字符串?dāng)?shù)組 | 可缺省,缺省值為空。 |
entities | 標識能夠接收Want的Entity值的集合。 | 字符串?dāng)?shù)組 | 可缺省,缺省值為空。 |
uris | 標識與Want中URI(Uniform Resource Identifier)相匹配的集合。 | 對象數(shù)組 | 可缺省,缺省值為空。 |
屬性名稱 | 含義 | 數(shù)據(jù)類型 | 是否可缺省 |
---|---|---|---|
scheme | 標識URI的協(xié)議名部分,常見的有http、https、file、ftp等。 | 字符串 | uris中僅配置type時可以缺省,缺省值為空,否則不可缺省。 |
host | 標識URI的主機地址部分,該字段要在schema存在時才有意義。常見的方式: - 域名方式,如example.com。 - IP地址方式,如10.10.10.1。 | 字符串 | 可缺省,缺省值為空。 |
port | 標識URI的端口部分。如http默認端口為80,https默認端口是443,ftp默認端口是21。該字段要在schema和host都存在時才有意義。 | 字符串 | 可缺省,缺省值為空。 |
path | pathStartWith | pathRegex | 標識URI的路徑部分,path、pathStartWith和pathRegex配置時三選一。path標識URI與want中的路徑部分全匹配,pathStartWith標識URI與want中的路徑部分允許前綴匹配,pathRegex標識URI與want中的路徑部分允許正則匹配。該字段要在schema和host都存在時才有意義。 | 字符串 | 可缺省,缺省值為空。 |
type | 標識與Want相匹配的數(shù)據(jù)類型,使用MIME(Multipurpose Internet Mail Extensions)類型規(guī)范??膳cschema同時配置,也可以單獨配置。 | 字符串 | 可缺省,缺省值為空。 |
skills示例:
- {
- "abilities": [
- {
- "skills": [
- {
- "actions": [
- "ohos.want.action.home"
- ],
- "entities": [
- "entity.system.home"
- ],
- "uris": [
- {
- "scheme":"http",
- "host":"example.com",
- "port":"80",
- "path":"path",
- "type": "text/*"
- }
- ]
- }
- ]
- }
- ]
- }
描述extensionAbilities的配置信息,標簽值為數(shù)組類型,該標簽下的配置只對當(dāng)前extensionAbilities生效。
屬性名稱 | 含義 | 數(shù)據(jù)類型 | 是否可缺省 |
---|---|---|---|
name | 標識當(dāng)前ExtensionAbility組件的名稱,標簽值最大長度為127個字節(jié),該名稱在整個應(yīng)用要唯一。 | 字符串 | 該標簽不可缺省。 |
srcEntry | 標識當(dāng)前ExtensionAbility組件所對應(yīng)的代碼路徑,標簽值最大長度為127字節(jié)。 | 字符串 | 該標簽不可缺省。 |
description | 標識當(dāng)前ExtensionAbility組件的描述,標簽值最大長度為255字節(jié),標簽也可以是描述內(nèi)容的資源索引,用于支持多語言。 | 字符串 | 該標簽可缺省,缺省值為空。 |
icon | 標識當(dāng)前ExtensionAbility組件的圖標,標簽值為資源文件的索引。如果ExtensionAbility組件被配置為MainElement,該標簽必須配置。 | 字符串 | 該標簽可缺省,缺省值為空。 |
label | 標識當(dāng)前ExtensionAbility組件對用戶顯示的名稱,標簽值配置為該名稱的資源索引以支持多語言。 說明: - 如果ExtensionAbility被配置當(dāng)前Module的mainElement時,該標簽必須配置,且應(yīng)用內(nèi)唯一。 | 字符串 | 該標簽不可缺省。 |
type | 標識當(dāng)前ExtensionAbility組件的類型,取值為: - form:卡片的ExtensionAbility。 - workScheduler:延時任務(wù)的ExtensionAbility。 - inputMethod:輸入法的ExtensionAbility。 - service:后臺運行的service組件。 - accessibility:輔助能力的ExtensionAbility。 - dataShare:數(shù)據(jù)共享的ExtensionAbility。 - fileShare:文件共享的ExtensionAbility。 - staticSubscriber:靜態(tài)廣播的ExtensionAbility。 - wallpaper:壁紙的ExtensionAbility。 - backup:數(shù)據(jù)備份的ExtensionAbility。 - window:該ExtensionAbility會在啟動過程中創(chuàng)建一個window,為開發(fā)者提供界面開發(fā)。開發(fā)者開發(fā)出來的界面將通過abilityComponent控件組合到其他應(yīng)用的窗口中。 - thumbnail:獲取文件縮略圖的ExtensionAbility,開發(fā)者可以對自定義文件類型的文件提供縮略。 - preview:該ExtensionAbility會將文件解析后在一個窗口中顯示,開發(fā)者可以通過將此窗口組合到其他應(yīng)用窗口中。 說明: - 其中service和dataShare類型,僅支持系統(tǒng)應(yīng)用配置,三方應(yīng)用配置不生效。 | 字符串 | 該標簽不可缺省。 |
permissions | 標識當(dāng)前ExtensionAbility組件自定義的權(quán)限信息。當(dāng)其他應(yīng)用訪問該ExtensionAbility時,需要申請相應(yīng)的權(quán)限信息。 一個數(shù)組元素為一個權(quán)限名稱。通常采用反向域名格式(最大255字節(jié)),可以是系統(tǒng)預(yù)定義的權(quán)限,也可以是該應(yīng)用自定義的權(quán)限。如果是后者,需與defPermissions標簽中定義的某個權(quán)限的name標簽值一致。 | 字符串?dāng)?shù)組 | 該標簽可缺省,缺省值為空。 |
uri | 標識當(dāng)前ExtensionAbility組件提供的數(shù)據(jù)URI,為字符數(shù)組類型(最大長度255),用反向域名的格式表示。 說明: - 該標簽在type為dataShare類型的ExtensionAbility時,不可缺省。 | 字符串 | 該標簽可缺省,缺省值為空。 |
skills | 標識當(dāng)前ExtensionAbility組件能夠接收的Want的特征集,為數(shù)組格式。 配置規(guī)則:entry包可以配置多個具有入口能力的skills標簽(配置了ohos.want.action.home和entity.system.home)的ExtensionAbility,其中第一個配置了skills標簽的ExtensionAbility中的label和icon作為應(yīng)用或服務(wù)的label和icon。 說明: - 應(yīng)用的Feature包可以配置具有入口能力的skills標簽。 - 服務(wù)的Feature包不能配置具有入口能力的skills標簽。 | 數(shù)組 | 該標簽可缺省,缺省值為空。 |
標識當(dāng)前ExtensionAbility組件的元信息。 | 對象 | 該標簽可缺省,缺省值為空。 | |
exported | 標識當(dāng)前ExtensionAbility組件是否可以被其他應(yīng)用調(diào)用,為布爾類型。 - true:表示可以被其他應(yīng)用調(diào)用。 - false:表示不可以被其他應(yīng)用調(diào)用。 | 布爾值 | 該標簽可缺省,缺省值為false。 |
extensionAbilities示例:
- {
- "extensionAbilities": [
- {
- "name": "FormName",
- "srcEntry": "./form/MyForm.ts",
- "icon": "$media:icon",
- "label" : "$string:extension_name",
- "description": "$string:form_description",
- "type": "form",
- "permissions": ["ohos.abilitydemo.permission.PROVIDER"],
- "readPermission": "",
- "writePermission": "",
- "exported": true,
- "uri":"scheme://authority/path/query",
- "skills": [{
- "actions": [],
- "entities": [],
- "uris": []
- }],
- "metadata": [
- {
- "name": "ohos.extension.form",
- "resource": "$profile:form_config",
- }
- ]
- }
- ]
- }
該標簽標識應(yīng)用運行時需向系統(tǒng)申請的權(quán)限集合。
屬性 | 含義 | 類型 | 取值范圍 | 默認值 |
---|---|---|---|---|
name | 必須,填寫需要使用的權(quán)限名稱。 | 字符串 | 自定義。 | 無。 |
reason | 可選,當(dāng)申請的權(quán)限為user_grant權(quán)限時此字段必填,用于描述申請權(quán)限的原因。 說明: - 當(dāng)申請的權(quán)限為user_grant權(quán)限時,如果未填寫該字段則不允許在應(yīng)用市場上架,并且需要進行多語種適配。 | 字符串 | 使用string類資源引用。格式為$string: ***。 | 空。 |
usedScene | 可選,當(dāng)申請的權(quán)限為user_grant權(quán)限時此字段必填。描述權(quán)限使用的場景由abilities和when組成。其中abilities可以配置為多個UIAbility組件,when表示調(diào)用時機。 說明: - 默認為可選,當(dāng)申請的權(quán)限為user_grant權(quán)限時,abilities標簽必填,when標簽可選。 | abilities:UIAbility或者ExtensionAbility名稱的字符串?dāng)?shù)組 when:字符串 | abilities:UIAbility或者ExtensionAbility組件的名稱。 when:inuse(使用時)、always(始終)。 | abilities:空。 when:空。 |
requestPermissions示例:
- {
- "module" : {
- "requestPermissions": [
- {
- "name": "ohos.abilitydemo.permission.PROVIDER",
- "reason": "$string:reason",
- "usedScene": {
- "abilities": [
- "EntryFormAbility"
- ],
- "when": "inuse"
- }
- }
- ]
- }
- }
shortcuts標識應(yīng)用的快捷方式信息。標簽值為數(shù)組,最多可以配置四個快捷方式。其包含四個子標簽shortcutId、label、icon、wants。
metadata中指定shortcut信息,其中:
name:指定shortcuts的名稱。使用ohos.ability.shortcuts作為shortcuts信息的標識。
resource:指定shortcuts信息的資源位置。
屬性 | 含義 | 類型 | 默認值 |
---|---|---|---|
shortcutId | 標識快捷方式的ID。字符串的最大長度為63字節(jié)。 | 字符串 | 該標簽不可缺省。 |
label | 標識快捷方式的標簽信息,即快捷方式對外顯示的文字描述信息。取值可以是描述性內(nèi)容,也可以是標識label的資源索引。字符串最大長度為255字節(jié)。 | 字符串 | 該標簽可缺省,缺省值為空。 |
icon | 標識快捷方式的圖標,標簽值為資源文件的索引。 | 字符串 | 該標簽可缺省,缺省值為空。 |
標識快捷方式內(nèi)定義的目標wants信息集合,每個wants可配置bundleName和abilityName兩個子標簽。 bundleName:表示快捷方式的目標Bundle名稱,字符串類型。 abilityName:表示快捷方式的目標組件名,字符串類型。 | 對象 | 該標簽可缺省,缺省為空。 |
在/resource/base/profile/目錄下配置shortcuts_config.json配置文件。
- {
- "shortcuts": [
- {
- "shortcutId": "id_test1",
- "label": "$string:shortcut",
- "icon": "$media:aa_icon",
- "wants": [
- {
- "bundleName": "com.ohos.hello",
- "abilityName": "EntryAbility"
- }
- ]
- }
- ]
- }
在module.json5配置文件的abilities標簽中,針對需要添加快捷方式的UIAbility進行配置metadata標簽,使shortcut配置文件對該UIAbility生效。
- {
- "module": {
- // ...
- "abilities": [
- {
- "name": "EntryAbility",
- "srcEntry": "./ets/entryability/EntryAbility.ts",
- // ...
- "skills": [
- {
- "entities": [
- "entity.system.home"
- ],
- "actions": [
- "ohos.want.action.home"
- ]
- }
- ],
- "metadata": [
- {
- "name": "ohos.ability.shortcuts",
- "resource": "$profile:shortcuts_config"
- }
- ]
- }
- ]
- }
- }
該標簽下的子標簽均為可選字段,在應(yīng)用市場云端分發(fā)時使用,distroFilter標簽用于定義HAP對應(yīng)的細分設(shè)備規(guī)格的分發(fā)策略,以便在應(yīng)用市場進行云端分發(fā)應(yīng)用包時做精準匹配。該標簽可配置的分發(fā)策略維度包括API Version、屏幕形狀、屏幕尺寸、屏幕分辨率,設(shè)備的國家與地區(qū)碼。在進行分發(fā)時,通過deviceType與這五個屬性的匹配關(guān)系,唯一確定一個用于分發(fā)到設(shè)備的HAP。
該標簽需要配置在/resource/profile資源目錄下,并在模塊的metadata的resource字段中引用。
屬性名稱 | 含義 | 數(shù)據(jù)類型 | 是否可缺省 |
---|---|---|---|
apiVersion | 標識支持的apiVersion范圍。 | 對象數(shù)組 | 該標簽可缺省,缺省值為空。 |
screenShape | 標識屏幕形狀的支持策略。 | 對象數(shù)組 | 該標簽可缺省,缺省值為空。 |
screenWindow | 標識應(yīng)用運行時窗口的分辨率支持策略。該字段僅支持對輕量級智能穿戴設(shè)備進行配置。 | 對象數(shù)組 | 該標簽可缺省,缺省值為空。 |
screenDensity | 標識屏幕的像素密度(dpi:Dot Per Inch)。 | 對象數(shù)組 | 該標簽可缺省,缺省值為空。 |
countryCode | 表示應(yīng)用需要分發(fā)的國家地區(qū)碼,具體值以ISO-3166-1標準為準。支持多個國家和地區(qū)枚舉定義。 | 對象數(shù)組 | 該標簽可缺省,缺省值為空。 |
屬性名稱 | 含義 | 數(shù)據(jù)類型 | 是否可缺省 |
---|---|---|---|
policy | 標識該子屬性取值規(guī)則。配置為“exclude”或“include”。 - exclude:表示需要排除的value屬性。 - include:表示需要包含的value屬性。 | 字符串 | 該標簽不可缺省。 |
value | 支持的取值為circle(圓形)、rect(矩形)。場景示例:針對智能穿戴設(shè)備,可為圓形表盤和矩形表盤分別提供不同的HAP。 | 字符串?dāng)?shù)組 | 該標簽不可缺省。 |
屬性名稱 | 含義 | 數(shù)據(jù)類型 | 是否可缺省 |
---|---|---|---|
policy | 標識該子屬性取值規(guī)則。配置為“exclude”或“include”。 - exclude:表示該字段取值不包含value枚舉值匹配規(guī)則的匹配該屬性。 - include:表示該字段取值滿足value枚舉值匹配規(guī)則的匹配該屬性。 | 字符串 | 該標簽不可缺省。 |
value | 單個字符串的取值格式為“寬 * 高”,取值為整數(shù)像素值,例如“454 * 454”。 | 字符串?dāng)?shù)組 | 該標簽不可缺省。 |
屬性名稱 | 含義 | 數(shù)據(jù)類型 | 是否可缺省 |
---|---|---|---|
policy | 標識該子屬性取值規(guī)則。配置為“exclude”或“include”。 - exclude:表示需要排除的value屬性。 - include:表示需要包含的value屬性。 | 字符串 | 該標簽不可缺省。 |
value | 該標簽標識屏幕的像素密度(dpi :Dot Per Inch)。 該標簽為字符串?dāng)?shù)組,字符串范圍如下。 - sdpi:表示小規(guī)模的屏幕密度(Small-scale Dots per Inch),適用于dpi取值為(0,120]的設(shè)備。 - mdpi:表示中規(guī)模的屏幕密度(Medium-scale Dots Per Inch),適用于dpi取值為(120,160]的設(shè)備。 - ldpi:表示大規(guī)模的屏幕密度(Large-scale Dots Per Inch),適用于dpi取值為(160,240]的設(shè)備。 - xldpi:表示大規(guī)模的屏幕密度(Extra Large-scale Dots Per Inch),適用于dpi取值為(240,320]的設(shè)備。 - xxldpi:表示大規(guī)模的屏幕密度(Extra Extra Large-scale Dots Per Inch),適用于dpi取值為(320,480]的設(shè)備。 - xxxldpi:表示大規(guī)模的屏幕密度(Extra Extra Extra Large-scale Dots Per Inch),適用于dpi取值為(480, 640]的設(shè)備。 | 字符串?dāng)?shù)組 | 該標簽不可缺省。 |
屬性名稱 | 含義 | 數(shù)據(jù)類型 | 是否可缺省 |
---|---|---|---|
policy | 標識該子屬性取值規(guī)則。配置為“exclude”或“include”。 - exclude:表示需要排除的value屬性。 - include:表示需要包含的value屬性。 | 字符串 | 該標簽不可缺省。 |
value | 標識應(yīng)用需要分發(fā)的國家地區(qū)碼。 | 字符串?dāng)?shù)組 | 該標簽不可缺省。 |
在開發(fā)視圖的resources/base/profile下面定義配置文件distro_filter_config.json,文件名可以自定義。
- {
- "distroFilter": {
- "screenShape": {
- "policy": "include",
- "value": [
- "circle",
- "rect"
- ]
- },
- "screenWindow": {
- "policy": "include",
- "value": [
- "454*454",
- "466*466"
- ]
- },
- "screenDensity": {
- "policy": "exclude",
- "value": [
- "ldpi",
- "xldpi"
- ]
- },
- "countryCode": { // 支持中國和香港地區(qū)分發(fā)
- "policy": "include",
- "value": [
- "CN",
- "HK"
- ]
- }
- }
- }
在module.json5配置文件的module標簽中定義metadata信息。
- {
- "module": {
- // ...
- "metadata": [
- {
- "name": "ohos.module.distro",
- "resource": "$profile:distro_filter_config",
- }
- ]
- }
- }
更多建議: