module.json5配置文件

2024-01-25 11:58 更新

先通過一個示例,整體認識一下module.json5配置文件。

  1. {
  2. "module": {
  3. "name": "entry",
  4. "type": "entry",
  5. "description": "$string:module_desc",
  6. "mainElement": "EntryAbility",
  7. "deviceTypes": [
  8. "tv",
  9. "tablet"
  10. ],
  11. "deliveryWithInstall": true,
  12. "installationFree": false,
  13. "pages": "$profile:main_pages",
  14. "virtualMachine": "ark",
  15. "metadata": [
  16. {
  17. "name": "string",
  18. "value": "string",
  19. "resource": "$profile:distributionFilter_config"
  20. }
  21. ],
  22. "abilities": [
  23. {
  24. "name": "EntryAbility",
  25. "srcEntry": "./ets/entryability/EntryAbility.ts",
  26. "description": "$string:EntryAbility_desc",
  27. "icon": "$media:icon",
  28. "label": "$string:EntryAbility_label",
  29. "startWindowIcon": "$media:icon",
  30. "startWindowBackground": "$color:start_window_background",
  31. "exported": true,
  32. "skills": [
  33. {
  34. "entities": [
  35. "entity.system.home"
  36. ],
  37. "actions": [
  38. "ohos.want.action.home"
  39. ]
  40. }
  41. ]
  42. }
  43. ],
  44. "requestPermissions": [
  45. {
  46. "name": "ohos.abilitydemo.permission.PROVIDER",
  47. "reason": "$string:reason",
  48. "usedScene": {
  49. "abilities": [
  50. "FormAbility"
  51. ],
  52. "when": "inuse"
  53. }
  54. }
  55. ]
  56. }
  57. }

module.json5配置文件包含以下標簽。

表1 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。

字符串

該標簽可缺省,缺省值為空。

deviceTypes

標識當(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的時候自動插入。

pages

標識當(dāng)前Module的profile資源,用于列舉每個頁面信息。該標簽最大長度為255個字節(jié)。

字符串

在有UIAbility的場景下,該標簽不可缺省。

metadata

標識當(dāng)前Module的自定義元信息,標簽值為數(shù)組類型,只對當(dāng)前Module、UIAbility、ExtensionAbility生效。

對象數(shù)組

該標簽可缺省,缺省值為空。

abilities

標識當(dāng)前Module中UIAbility的配置信息,標簽值為數(shù)組類型,只對當(dāng)前UIAbility生效。

對象

該標簽可缺省,缺省值為空。

extensionAbilities

標識當(dāng)前Module中ExtensionAbility的配置信息,標簽值為數(shù)組類型,只對當(dāng)前ExtensionAbility生效。

對象

該標簽可缺省,缺省值為空。

requestPermissions

標識當(dāng)前應(yīng)用運行時需向系統(tǒng)申請的權(quán)限集合。

對象

該標簽可缺省,缺省值為空。

testRunner

標識當(dāng)前Module用于支持對測試框架的配置。

對象

該標簽可缺省,缺省值為空。

deviceTypes標簽

表2 deviceType標簽配置說明

設(shè)備類型

枚舉值

說明

平板

tablet

-

智慧屏

tv

-

智能手表

wearable

系統(tǒng)能力較豐富的手表,具備電話功能。

車機

car

-

手機

phone

-

deviceTypes示例:

  1. {
  2. "module": {
  3. "name": "myHapName",
  4. "type": "feature",
  5. "deviceTypes" : [
  6. "tablet"
  7. ]
  8. }
  9. }

pages標簽

該標簽是一個profile文件資源,用于指定描述頁面信息的配置文件。

  1. {
  2. "module": {
  3. // ...
  4. "pages": "$profile:main_pages", // 通過profile下的資源文件配置
  5. }
  6. }

在開發(fā)視圖的resources/base/profile下面定義配置文件main_pages.json,其中文件名(main_pages)可自定義,需要和前文中pages標簽指定的信息對應(yīng),配置文件中列舉了當(dāng)前應(yīng)用組件中的頁面信息。

表3 pages配置文件標簽說明

屬性名稱

含義

數(shù)據(jù)類型

是否可缺省

src

描述有關(guān)JavaScript模塊中所有頁面的路由信息,包括頁面路徑和頁面名稱。該值是一個字符串?dāng)?shù)組,其中每個元素表示一個頁面。

字符串?dāng)?shù)組

該標簽不可缺省。

window

用于定義與顯示窗口相關(guān)的配置。

對象

該標簽可缺省,缺省值為空。

表4 pages配置文件中的window標簽說明

屬性名稱

含義

數(shù)據(jù)類型

是否可缺省

designWidth

標識頁面設(shè)計基準寬度。以此為基準,根據(jù)實際設(shè)備寬度來縮放元素大小。

數(shù)值

可缺省,缺省值為720px。

autoDesignWidth

標識頁面設(shè)計基準寬度是否自動計算。當(dāng)配置為true時,designWidth將會被忽略,設(shè)計基準寬度由設(shè)備寬度與屏幕密度計算得出。

布爾值

可缺省,缺省值為false。

  1. {
  2. "src": [
  3. "pages/index/mainPage",
  4. "pages/second/payment",
  5. "pages/third/shopping_cart",
  6. "pages/four/owner"
  7. ]
  8. }

metadata標簽

該標簽標識HAP的自定義元信息,標簽值為數(shù)組類型,包含name,value,resource三個子標簽。

表5 metadata標簽說明

屬性名稱

含義

數(shù)據(jù)類型

是否可缺省

name

該標簽標識數(shù)據(jù)項的鍵名稱,字符串類型(最大長度255字節(jié))。

字符串

該標簽可缺省,缺省值為空。

value

該標簽標識數(shù)據(jù)項的值,標簽值為字符串(最大長度255字節(jié))。

字符串

該標簽可缺省,缺省值為空。

resource

該標簽標識定義用戶自定義數(shù)據(jù)格式,標簽值為標識該數(shù)據(jù)的資源的索引值。該標簽最大字節(jié)長度為255字節(jié)。

字符串

該標簽可缺省,缺省值為空。

  1. {
  2. "module": {
  3. "metadata": [{
  4. "name": "module_metadata",
  5. "value": "a test demo for module metadata",
  6. "resource": "$profile:shortcuts_config",
  7. }],
  8. "abilities": [{
  9. "metadata": [{
  10. "name": "ability_metadata",
  11. "value": "a test demo for ability",
  12. "resource": "$profile:config_file"
  13. },
  14. {
  15. "name": "ability_metadata_2",
  16. "value": "a string test",
  17. "resource": "$profile:config_file"
  18. }],
  19. }],
  20. "extensionAbilities": [{
  21. "metadata": [{
  22. "name": "extensionAbility_metadata",
  23. "value": "a test for extensionAbility",
  24. "resource": "$profile:config_file"
  25. },
  26. {
  27. "name": "extensionAbility_metadata_2",
  28. "value": "a string test",
  29. "resource": "$profile:config_file"
  30. }],
  31. }]
  32. }
  33. }

abilities標簽

abilities標簽描述UIAbility組件的配置信息,標簽值為數(shù)組類型,該標簽下的配置只對當(dāng)前UIAbility生效。

表6 abilities標簽說明

屬性名稱

含義

數(shù)據(jù)類型

是否可缺省

name

標識當(dāng)前UIAbility組件的名稱,該名稱在整個應(yīng)用要唯一,標簽值采用字符串表示(最大長度127個字節(jié)),僅支持英文字符。

字符串

該標簽不可缺省。

srcEntry

該標簽標識入口UIAbility的代碼路徑,標簽值為字符串(最長為127字節(jié))。

字符串

該標簽不可缺省。

launchType

標識當(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ù)組

該標簽可缺省,缺省值為空。

metadata

標識當(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。

skills

標識當(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示例:

  1. {
  2. "abilities": [{
  3. "name": "EntryAbility",
  4. "srcEntry": "./ets/entryability/EntryAbility.ts",
  5. "launchType":"singleton",
  6. "description": "$string:description_main_ability",
  7. "icon": "$media:icon",
  8. "label": "Login",
  9. "permissions": [],
  10. "metadata": [],
  11. "exported": true,
  12. "continuable": true,
  13. "skills": [{
  14. "actions": ["ohos.want.action.home"],
  15. "entities": ["entity.system.home"],
  16. "uris": []
  17. }],
  18. "backgroundModes": [
  19. "dataTransfer",
  20. "audioPlayback",
  21. "audioRecording",
  22. "location",
  23. "bluetoothInteraction",
  24. "multiDeviceConnection",
  25. "wifiInteraction",
  26. "voip",
  27. "taskKeeping"
  28. ],
  29. "startWindowIcon": "$media:icon",
  30. "startWindowBackground": "$color:red",
  31. "removeMissionAfterTerminate": true,
  32. "orientation": " ",
  33. "supportWindowMode": ["fullscreen", "split", "floating"],
  34. "maxWindowRatio": 3.5,
  35. "minWindowRatio": 0.5,
  36. "maxWindowWidth": 2560,
  37. "minWindowWidth": 1400,
  38. "maxWindowHeight": 300,
  39. "minWindowHeight": 200,
  40. "excludeFromMissions": false
  41. }]
  42. }

skills標簽

該標簽標識UIAbility組件或者ExtensionAbility組件能夠接收的Want的特征。

表7 skills標簽說明

屬性名稱

含義

數(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ù)組

可缺省,缺省值為空。

表8 uris對象內(nèi)部結(jié)構(gòu)說明

屬性名稱

含義

數(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示例:

  1. {
  2. "abilities": [
  3. {
  4. "skills": [
  5. {
  6. "actions": [
  7. "ohos.want.action.home"
  8. ],
  9. "entities": [
  10. "entity.system.home"
  11. ],
  12. "uris": [
  13. {
  14. "scheme":"http",
  15. "host":"example.com",
  16. "port":"80",
  17. "path":"path",
  18. "type": "text/*"
  19. }
  20. ]
  21. }
  22. ]
  23. }
  24. ]
  25. }

extensionAbilities標簽

描述extensionAbilities的配置信息,標簽值為數(shù)組類型,該標簽下的配置只對當(dāng)前extensionAbilities生效。

表9 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ù)組

該標簽可缺省,缺省值為空。

metadata

標識當(dāng)前ExtensionAbility組件的元信息。

對象

該標簽可缺省,缺省值為空。

exported

標識當(dāng)前ExtensionAbility組件是否可以被其他應(yīng)用調(diào)用,為布爾類型。

- true:表示可以被其他應(yīng)用調(diào)用。

- false:表示不可以被其他應(yīng)用調(diào)用。

布爾值

該標簽可缺省,缺省值為false。

extensionAbilities示例:

  1. {
  2. "extensionAbilities": [
  3. {
  4. "name": "FormName",
  5. "srcEntry": "./form/MyForm.ts",
  6. "icon": "$media:icon",
  7. "label" : "$string:extension_name",
  8. "description": "$string:form_description",
  9. "type": "form",
  10. "permissions": ["ohos.abilitydemo.permission.PROVIDER"],
  11. "readPermission": "",
  12. "writePermission": "",
  13. "exported": true,
  14. "uri":"scheme://authority/path/query",
  15. "skills": [{
  16. "actions": [],
  17. "entities": [],
  18. "uris": []
  19. }],
  20. "metadata": [
  21. {
  22. "name": "ohos.extension.form",
  23. "resource": "$profile:form_config",
  24. }
  25. ]
  26. }
  27. ]
  28. }

requestPermissions標簽

該標簽標識應(yīng)用運行時需向系統(tǒng)申請的權(quán)限集合。

說明
  • 在requestPermissions標簽中配置的權(quán)限項將在應(yīng)用級別生效,即該權(quán)限適用于整個應(yīng)用程序。
  • 如果應(yīng)用需要訂閱自己發(fā)布的事件,而且應(yīng)用在extensionAbilities標簽中的permissions字段中設(shè)置了訪問該應(yīng)用所需要的權(quán)限,那么應(yīng)用也需要在requestPermissions標簽中注冊相關(guān)權(quán)限才能收到該事件。
表10 requestPermissions標簽說明

屬性

含義

類型

取值范圍

默認值

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示例:

  1. {
  2. "module" : {
  3. "requestPermissions": [
  4. {
  5. "name": "ohos.abilitydemo.permission.PROVIDER",
  6. "reason": "$string:reason",
  7. "usedScene": {
  8. "abilities": [
  9. "EntryFormAbility"
  10. ],
  11. "when": "inuse"
  12. }
  13. }
  14. ]
  15. }
  16. }

shortcuts標簽

shortcuts標識應(yīng)用的快捷方式信息。標簽值為數(shù)組,最多可以配置四個快捷方式。其包含四個子標簽shortcutId、label、icon、wants。

metadata中指定shortcut信息,其中:

  • name:指定shortcuts的名稱。使用ohos.ability.shortcuts作為shortcuts信息的標識。

  • resource:指定shortcuts信息的資源位置。

表11 shortcuts標簽說明

屬性

含義

類型

默認值

shortcutId

標識快捷方式的ID。字符串的最大長度為63字節(jié)。

字符串

該標簽不可缺省。

label

標識快捷方式的標簽信息,即快捷方式對外顯示的文字描述信息。取值可以是描述性內(nèi)容,也可以是標識label的資源索引。字符串最大長度為255字節(jié)。

字符串

該標簽可缺省,缺省值為空。

icon

標識快捷方式的圖標,標簽值為資源文件的索引。

字符串

該標簽可缺省,缺省值為空。

wants

標識快捷方式內(nèi)定義的目標wants信息集合,每個wants可配置bundleName和abilityName兩個子標簽。

bundleName:表示快捷方式的目標Bundle名稱,字符串類型。

abilityName:表示快捷方式的目標組件名,字符串類型。

對象

該標簽可缺省,缺省為空。

  1. 在/resource/base/profile/目錄下配置shortcuts_config.json配置文件。

    1. {
    2. "shortcuts": [
    3. {
    4. "shortcutId": "id_test1",
    5. "label": "$string:shortcut",
    6. "icon": "$media:aa_icon",
    7. "wants": [
    8. {
    9. "bundleName": "com.ohos.hello",
    10. "abilityName": "EntryAbility"
    11. }
    12. ]
    13. }
    14. ]
    15. }
  2. 在module.json5配置文件的abilities標簽中,針對需要添加快捷方式的UIAbility進行配置metadata標簽,使shortcut配置文件對該UIAbility生效。

    1. {
    2. "module": {
    3. // ...
    4. "abilities": [
    5. {
    6. "name": "EntryAbility",
    7. "srcEntry": "./ets/entryability/EntryAbility.ts",
    8. // ...
    9. "skills": [
    10. {
    11. "entities": [
    12. "entity.system.home"
    13. ],
    14. "actions": [
    15. "ohos.want.action.home"
    16. ]
    17. }
    18. ],
    19. "metadata": [
    20. {
    21. "name": "ohos.ability.shortcuts",
    22. "resource": "$profile:shortcuts_config"
    23. }
    24. ]
    25. }
    26. ]
    27. }
    28. }

distroFilter標簽

該標簽下的子標簽均為可選字段,在應(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字段中引用。

表12 distroFilter標簽說明

屬性名稱

含義

數(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ù)組

該標簽可缺省,缺省值為空。

表13 screenShape對象的內(nèi)部結(jié)構(gòu)

屬性名稱

含義

數(shù)據(jù)類型

是否可缺省

policy

標識該子屬性取值規(guī)則。配置為“exclude”或“include”。

- exclude:表示需要排除的value屬性。

- include:表示需要包含的value屬性。

字符串

該標簽不可缺省。

value

支持的取值為circle(圓形)、rect(矩形)。場景示例:針對智能穿戴設(shè)備,可為圓形表盤和矩形表盤分別提供不同的HAP。

字符串?dāng)?shù)組

該標簽不可缺省。

表14 screenWindow對象的內(nèi)部結(jié)構(gòu)說明

屬性名稱

含義

數(shù)據(jù)類型

是否可缺省

policy

標識該子屬性取值規(guī)則。配置為“exclude”或“include”。

- exclude:表示該字段取值不包含value枚舉值匹配規(guī)則的匹配該屬性。

- include:表示該字段取值滿足value枚舉值匹配規(guī)則的匹配該屬性。

字符串

該標簽不可缺省。

value

單個字符串的取值格式為“寬 * 高”,取值為整數(shù)像素值,例如“454 * 454”。

字符串?dāng)?shù)組

該標簽不可缺省。

表15 screenDensity對象的內(nèi)部結(jié)構(gòu)說明

屬性名稱

含義

數(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ù)組

該標簽不可缺省。

表16 countryCode對象的內(nèi)部結(jié)構(gòu)說明

屬性名稱

含義

數(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,文件名可以自定義。

  1. {
  2. "distroFilter": {
  3. "screenShape": {
  4. "policy": "include",
  5. "value": [
  6. "circle",
  7. "rect"
  8. ]
  9. },
  10. "screenWindow": {
  11. "policy": "include",
  12. "value": [
  13. "454*454",
  14. "466*466"
  15. ]
  16. },
  17. "screenDensity": {
  18. "policy": "exclude",
  19. "value": [
  20. "ldpi",
  21. "xldpi"
  22. ]
  23. },
  24. "countryCode": { // 支持中國和香港地區(qū)分發(fā)
  25. "policy": "include",
  26. "value": [
  27. "CN",
  28. "HK"
  29. ]
  30. }
  31. }
  32. }

在module.json5配置文件的module標簽中定義metadata信息。

  1. {
  2. "module": {
  3. // ...
  4. "metadata": [
  5. {
  6. "name": "ohos.module.distro",
  7. "resource": "$profile:distro_filter_config",
  8. }
  9. ]
  10. }
  11. }

testRunner標簽

此標簽用于支持對測試框架的配置。

表17 testRunner標簽說明

屬性名稱

含義

數(shù)據(jù)類型

是否可缺省

name

標識測試框架對象名稱。該標簽最大字節(jié)長度為255個字節(jié)。

字符串

不可缺省。

srcPath

標識測試框架代碼路徑。該標簽最大字節(jié)長度為255個字節(jié)。

字符串

不可缺省。

testRunner標簽示例:

  1. {
  2. "module": {
  3. // ...
  4. "testRunner": {
  5. "name": "myTestRunnerName",
  6. "srcPath": "etc/test/TestRunner.ts"
  7. }
  8. }
  9. }
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號