# module.json5é…置文件 ## é…置文件示例 先通过一个示例,整体认识一下module.json5é…置文件。 <!--RP1--> ```json { "module": { "name": "entry", "type": "entry", "description": "$string:module_desc", "mainElement": "EntryAbility", "deviceTypes": [ "default", "tablet" ], "deliveryWithInstall": true, "installationFree": false, "pages": "$profile:main_pages", "virtualMachine": "ark", "appStartup": "$profile:app_startup_config", "metadata": [ { "name": "string", "value": "string", "resource": "$profile:distributionFilter_config" } ], "abilities": [ { "name": "EntryAbility", "srcEntry": "./ets/entryability/EntryAbility.ets", "description": "$string:EntryAbility_desc", "icon": "$media:layered_image", "label": "$string:EntryAbility_label", "startWindowIcon": "$media:icon", "startWindowBackground": "$color:start_window_background", "exported": true, "skills": [ { "entities": [ "entity.system.home" ], "actions": [ "ohos.want.action.home" ] } ], "continueType": [ "continueType1" ], "continueBundleName": [ "com.example.myapplication1", "com.example.myapplication2" ] } ], "definePermissions": [ { "name": "ohos.abilitydemo.permission.PROVIDER", "grantMode": "system_grant", "availableLevel": "system_core", "provisionEnable": true, "distributedSceneEnable": false, "label": "$string:EntryAbility_label" } ], "requestPermissions": [ { "name": "ohos.abilitydemo.permission.PROVIDER", "reason": "$string:reason", "usedScene": { "abilities": [ "FormAbility" ], "when": "inuse" } } ], "targetModuleName": "feature", "targetPriority": 50, "querySchemes": [ "app1Scheme", "app2Scheme" ], "routerMap": "$profile:router_map", "appEnvironments": [ { "name": "name1", "value": "value1" } ], "hnpPackages": [ { "package": "hnpsample.hnp", "type": "public" } ], "fileContextMenu": "$profile:menu" } } ``` <!--RP1End--> ## é…ç½®æ–‡ä»¶æ ‡ç¾ module.json5é…置文件包å«ä»¥ä¸‹æ ‡ç¾ã€‚ **表1** module.json5é…ç½®æ–‡ä»¶æ ‡ç¾è¯´æ˜Ž | 属性å称 | å«ä¹‰ | æ•°æ®ç±»åž‹ | 是å¦å¯ç¼ºçœ | | -------- | -------- | -------- | -------- | | name | æ ‡è¯†å½“å‰Moduleçš„å称,确ä¿è¯¥å称在整个应用ä¸å”¯ä¸€ã€‚命å规则如下 :<br/>- ç”±å—æ¯ã€æ•°å—和下划线组æˆï¼Œä¸”必须以å—æ¯å¼€å¤´ã€‚<br/>- 最大长度31å—节。<br/>应用å‡çº§æ—¶å…许修改该å称,但需è¦åº”用适é…Module相关数æ®ç›®å½•çš„è¿ç§»ï¼Œè¯¦è§[文件管ç†æŽ¥å£](../reference/apis-core-file-kit/js-apis-file-fs.md#fscopydir10)。 | å—符串 | è¯¥æ ‡ç¾ä¸å¯ç¼ºçœã€‚ | | type | æ ‡è¯†å½“å‰Module的类型。支æŒçš„å–值如下:<br/>- entry:应用的主模å—。<br/>- feature:应用的动æ€ç‰¹æ€§æ¨¡å—。<br/>- har:é™æ€å…±äº«åŒ…模å—。<br/>- shared:动æ€å…±äº«åŒ…模å—。 | å—符串 | è¯¥æ ‡ç¾ä¸å¯ç¼ºçœã€‚ | | srcEntry | æ ‡è¯†å½“å‰Module所对应的代ç 路径,å–值为长度ä¸è¶…过127å—节的å—符串。 | å—符串 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºç©ºã€‚ | | description | æ ‡è¯†å½“å‰Moduleçš„æè¿°ä¿¡æ¯ï¼Œå–值为长度ä¸è¶…过255å—节的å—符串,å¯ä»¥é‡‡ç”¨å—符串资æºç´¢å¼•æ ¼å¼ã€‚ | å—符串 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºç©ºã€‚ | | <!--DelRow-->process | æ ‡è¯†å½“å‰Module的进程å,å–值为长度ä¸è¶…过31å—节的å—符串。如果在HAPæ ‡ç¾ä¸‹é…置了process,则该Module的所有UIAbilityã€DataShareExtensionAbilityã€ServiceExtensionAbility都è¿è¡Œåœ¨è¯¥è¿›ç¨‹ä¸ã€‚<br/>**说明:**<br/>å¼€å¯[多实例特æƒ](../../device-dev/subsystems/subsys-app-privilege-config-guide.md#å¯ç”±è®¾å¤‡åŽ‚商é…置的特æƒ)生效,三方应用é…ç½®ä¸ç”Ÿæ•ˆã€‚ | å—符串 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœä¸ºapp.json5文件下appæ ‡ç¾ä¸‹çš„bundleName。 | | mainElement | æ ‡è¯†å½“å‰Moduleçš„å…¥å£UIAbilityå称或者ExtensionAbilityå称,å–值为长度ä¸è¶…过255å—节的å—符串。 | å—符串 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºç©ºã€‚ | | [deviceTypes](#devicetypesæ ‡ç¾) | æ ‡è¯†å½“å‰Moduleå¯ä»¥è¿è¡Œåœ¨å“ªç±»è®¾å¤‡ä¸Šã€‚<br/>**说明:**<br/>当å˜åœ¨å¤šä¸ªæ¨¡å—时,å„模å—ä¸çš„é…ç½®å¯ä»¥ä¸ä¸€è‡´ï¼Œä½†å¿…须包å«æ‰€éœ€çš„设备类型以确ä¿æ£å¸¸è¿è¡Œã€‚ | å—符串数组 | è¯¥æ ‡ç¾ä¸å¯ç¼ºçœã€‚ | | deliveryWithInstall | æ ‡è¯†å½“å‰Module是å¦åœ¨ç”¨æˆ·ä¸»åŠ¨å®‰è£…的时候安装,å³è¯¥Module对应的HAP是å¦è·Ÿéšåº”用一起安装。<br/>- true:主动安装时安装。<br/>- false:主动安装时ä¸å®‰è£…。 | 布尔值 | è¯¥æ ‡ç¾ä¸å¯ç¼ºçœã€‚ | | installationFree | æ ‡è¯†å½“å‰Module是å¦æ”¯æŒå…安装特性。<br/>- true:表示支æŒå…安装特性,且符åˆå…安装约æŸã€‚<br/>- false:表示ä¸æ”¯æŒå…安装特性。<br/>**说明:**<br/>当[bundleType](./app-configuration-file.md#é…ç½®æ–‡ä»¶æ ‡ç¾)为原å化æœåŠ¡æ—¶ï¼Œè¯¥å—段需è¦é…置为true。å之,该å—段需è¦é…置为false。 | 布尔值 | è¯¥æ ‡ç¾ä¸å¯ç¼ºçœã€‚ | | virtualMachine | æ ‡è¯†å½“å‰Moduleè¿è¡Œçš„ç›®æ ‡è™šæ‹Ÿæœºç±»åž‹ï¼Œä¾›äº‘ç«¯åˆ†å‘使用,如应用市场和分å‘ä¸å¿ƒã€‚å¦‚æžœç›®æ ‡è™šæ‹Ÿæœºç±»åž‹ä¸ºArkTS引擎,则其值为“ark+版本å·â€ã€‚ | å—符串 | è¯¥æ ‡ç¾ç”±IDE构建HAP的时候自动æ’入。 | | [pages](#pagesæ ‡ç¾) | æ ‡è¯†å½“å‰Moduleçš„profile资æºï¼Œç”¨äºŽåˆ—举æ¯ä¸ªé¡µé¢ä¿¡æ¯ï¼Œå–值为长度ä¸è¶…过255å—节的å—符串。 | å—符串 | 在有UIAbilityçš„åœºæ™¯ä¸‹ï¼Œè¯¥æ ‡ç¾ä¸å¯ç¼ºçœã€‚ | | [metadata](#metadataæ ‡ç¾) | æ ‡è¯†å½“å‰Module的自定义元信æ¯ï¼Œå¯é€šè¿‡èµ„æºå¼•ç”¨çš„æ–¹å¼é…ç½®[distributionFilter](#distributionfilteræ ‡ç¾)ã€[shortcuts](#shortcutsæ ‡ç¾)ç‰ä¿¡æ¯ã€‚åªå¯¹å½“å‰Moduleã€UIAbilityã€ExtensionAbility生效。 | 对象数组 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºç©ºã€‚ | | [abilities](#abilitiesæ ‡ç¾) | æ ‡è¯†å½“å‰Moduleä¸UIAbilityçš„é…置信æ¯ï¼Œåªå¯¹å½“å‰UIAbility生效。 | 对象数组 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºç©ºã€‚ | | [extensionAbilities](#extensionabilitiesæ ‡ç¾) | æ ‡è¯†å½“å‰Moduleä¸ExtensionAbilityçš„é…置信æ¯ï¼Œåªå¯¹å½“å‰ExtensionAbility生效。 | 对象数组 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºç©ºã€‚ | | [definePermissions](#definepermissionsæ ‡ç¾) | æ ‡è¯†ç³»ç»Ÿèµ„æºhap定义的æƒé™ï¼Œä¸æ”¯æŒåº”用自定义æƒé™ã€‚ | 对象数组 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºç©ºã€‚ | | [requestPermissions](../security/AccessToken/declare-permissions.md#在é…置文件ä¸å£°æ˜Žæƒé™)| æ ‡è¯†å½“å‰åº”用è¿è¡Œæ—¶éœ€å‘系统申请的æƒé™é›†åˆã€‚ | 对象数组 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºç©ºã€‚ | | [testRunner](#testrunneræ ‡ç¾) | æ ‡è¯†ç”¨äºŽæµ‹è¯•å½“å‰Module的测试框架的é…置。 | 对象 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºç©ºã€‚ | | [atomicService](#atomicserviceæ ‡ç¾)| æ ‡è¯†å½“å‰åº”用是原å化æœåŠ¡æ—¶ï¼Œæœ‰å…³åŽŸå化æœåŠ¡çš„相关é…置。| 对象 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºç©ºã€‚ | | [dependencies](#dependenciesæ ‡ç¾)| æ ‡è¯†å½“å‰æ¨¡å—è¿è¡Œæ—¶ä¾èµ–的共享库列表。| 对象数组 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºç©ºã€‚ | | targetModuleName | æ ‡è¯†å½“å‰åŒ…æ‰€æŒ‡å®šçš„ç›®æ ‡module,确ä¿è¯¥å称在整个应用ä¸å”¯ä¸€ã€‚å–值为长度ä¸è¶…过31å—节的å—符串,ä¸æ”¯æŒä¸æ–‡ã€‚é…置该å—段的Module具有overlay特性。仅在动æ€å…±äº«åŒ…(HSP)ä¸é€‚用。 |å—符串|è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºç©ºã€‚| | targetPriority | æ ‡è¯†å½“å‰Module的优先级,å–值范围为1~100。é…ç½®targetModuleNameå—段之åŽï¼Œæ‰éœ€è¦é…置该å—段。仅在动æ€å…±äº«åŒ…(HSP)ä¸é€‚用。 |整型数值|è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸º1。| | [proxyData](#proxydataæ ‡ç¾) | æ ‡è¯†å½“å‰Moduleæ供的数æ®ä»£ç†åˆ—表。| 对象数组 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºç©ºã€‚| | isolationMode | æ ‡è¯†å½“å‰Module的多进程é…置项。支æŒçš„å–值如下:<br/>- nonisolationFirst:优先在éžç‹¬ç«‹è¿›ç¨‹ä¸è¿è¡Œã€‚<br/>- isolationFirst:优先在独立进程ä¸è¿è¡Œã€‚<br/>- isolationOnly:åªåœ¨ç‹¬ç«‹è¿›ç¨‹ä¸è¿è¡Œã€‚<br/>- nonisolationOnly:åªåœ¨éžç‹¬ç«‹è¿›ç¨‹ä¸è¿è¡Œã€‚ |å—符串|è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºnonisolationFirst。| | generateBuildHash |æ ‡è¯†å½“å‰HAP/HSP是å¦ç”±æ‰“包工具生æˆå“ˆå¸Œå€¼ã€‚当é…置为true时,如果系统OTAå‡çº§æ—¶åº”用versionCodeä¿æŒä¸å˜ï¼Œå¯æ ¹æ®å“ˆå¸Œå€¼åˆ¤æ–应用是å¦éœ€è¦å‡çº§ã€‚<br/>该å—段仅在[app.json5文件](./app-configuration-file.md)ä¸çš„generateBuildHashå—段为false时使能。<br/>**说明:**<br/>该å—段仅对预置应用生效。|布尔值|è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºfalse。| | compressNativeLibs | æ ‡è¯†libs库是å¦ä»¥åŽ‹ç¼©å˜å‚¨çš„æ–¹å¼æ‰“包到HAP。<br/>- true:libs库以压缩方å¼å˜å‚¨ã€‚<br/>- false:libs库以ä¸åŽ‹ç¼©æ–¹å¼å˜å‚¨ã€‚ | 布尔值 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºfalse。 | | libIsolation | 用于区分åŒåº”用ä¸åŒHAP下的.so文件,以防æ¢.so冲çªã€‚<br/>- true:当å‰HAPçš„.so文件会储å˜åœ¨libs目录ä¸ä»¥Moduleå命å的路径下。<br/>- false:当å‰HAPçš„.so文件会直接储å˜åœ¨libs目录ä¸ã€‚ | 布尔值 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºfalse。 | | fileContextMenu | æ ‡è¯†å½“å‰HAPçš„å³é”®èœå•é…置项。å–值为长度ä¸è¶…过255å—节的å—符串。 | å—符串 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºç©ºã€‚ | | querySchemes | æ ‡è¯†å…许当å‰åº”用进行跳转查询的URL schemes,åªå…许entry类型模å—é…置,最多50个,æ¯ä¸ªå—符串å–值ä¸è¶…过128å—节。 | å—符串数组 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºç©ºã€‚ | | [routerMap](#routermapæ ‡ç¾) | æ ‡è¯†å½“å‰æ¨¡å—é…置的路由表路径。å–值为长度ä¸è¶…过255å—节的å—符串。 | å—符串 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºç©ºã€‚ | | [appEnvironments](#appenvironmentsæ ‡ç¾) | æ ‡è¯†å½“å‰æ¨¡å—é…置的应用环境å˜é‡ï¼Œåªå…许entryå’Œfeature模å—é…置。 | 对象数组 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºç©ºã€‚ | | appStartup | æ ‡è¯†å½“å‰Moduleå¯åŠ¨æ¡†æž¶é…置路径,仅在Entryä¸ç”Ÿæ•ˆã€‚ | å—符串 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºç©ºã€‚ | | [hnpPackages](#hnppackagesæ ‡ç¾) | æ ‡è¯†å½“å‰åº”用包å«çš„Native软件包信æ¯ã€‚åªå…许entry类型模å—é…置。 | 对象数组 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºç©ºã€‚ | ## deviceTypesæ ‡ç¾ **表2** deviceTypesæ ‡ç¾è¯´æ˜Ž <!--RP2--> | 设备类型 | 枚举值 | 说明 | | -------- | -------- | -------- | | å¹³æ¿ | tablet | - | | æ™ºæ…§å± | tv | - | | 智能手表 | wearable | 系统能力较丰富的手表,具备电è¯åŠŸèƒ½ã€‚ | | 车机 | car | - | | 2in1 | 2in1 | èžåˆäº†å±å¹•è§¦æŽ§å’Œé”®é¼ æ“作的二åˆä¸€è®¾å¤‡ã€‚ | | 默认设备 | default | 能够使用全部系统能力的设备。 | <!--RP2End--> deviceTypes示例: ```json { "module": { "name": "myHapName", "type": "feature", "deviceTypes" : [ "tablet" ] } } ``` ## pagesæ ‡ç¾ è¯¥æ ‡ç¾æ˜¯ä¸€ä¸ªprofile文件资æºï¼Œç”¨äºŽæŒ‡å®šæ述页é¢ä¿¡æ¯çš„é…置文件。 ```json { "module": { // ... "pages": "$profile:main_pages", // 通过profile下的资æºæ–‡ä»¶é…ç½® } } ``` 在开å‘视图的resources/base/profile下é¢å®šä¹‰é…置文件main_pages.json,其ä¸æ–‡ä»¶å"main_pages"å¯è‡ªå®šä¹‰ï¼Œéœ€è¦å’Œpagesæ ‡ç¾æŒ‡å®šçš„ä¿¡æ¯å¯¹åº”。é…置文件ä¸åˆ—举了当å‰åº”用组件ä¸çš„页é¢ä¿¡æ¯ï¼ŒåŒ…å«é¡µé¢çš„路由信æ¯å’Œæ˜¾ç¤ºçª—å£ç›¸å…³çš„é…置。 **表3** pagesæ ‡ç¾è¯´æ˜Ž | 属性å称 | å«ä¹‰ | æ•°æ®ç±»åž‹ | 是å¦å¯ç¼ºçœ | | -------- | -------- | -------- | -------- | | src | æ ‡è¯†å½“å‰Moduleä¸æ‰€æœ‰é¡µé¢çš„路由信æ¯ï¼ŒåŒ…括页é¢è·¯å¾„和页é¢å称。其ä¸ï¼Œé¡µé¢è·¯å¾„是以当å‰Moduleçš„src/main/etsä¸ºåŸºå‡†ã€‚è¯¥æ ‡ç¾å–值为一个å—符串数组,其ä¸æ¯ä¸ªå…ƒç´ 表示一个页é¢ã€‚ | å—符串数组 | è¯¥æ ‡ç¾ä¸å¯ç¼ºçœã€‚ | | window | æ ‡è¯†ç”¨äºŽå®šä¹‰ä¸Žæ˜¾ç¤ºçª—å£ç›¸å…³çš„é…置。 | 对象 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºç©ºã€‚ | **表4** windowæ ‡ç¾è¯´æ˜Ž | 属性å称 | å«ä¹‰ | æ•°æ®ç±»åž‹ | 是å¦å¯ç¼ºçœ | | -------- | -------- | -------- | -------- | | designWidth | æ ‡è¯†é¡µé¢è®¾è®¡åŸºå‡†å®½åº¦ã€‚以æ¤ä¸ºåŸºå‡†ï¼Œæ ¹æ®å®žé™…设备宽度æ¥ç¼©æ”¾å…ƒç´ 大å°ã€‚ | 数值 | å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸º720px。 | | autoDesignWidth | æ ‡è¯†é¡µé¢è®¾è®¡åŸºå‡†å®½åº¦æ˜¯å¦è‡ªåŠ¨è®¡ç®—。当é…置为true时,designWidth将会被忽略,设计基准宽度由设备宽度与å±å¹•å¯†åº¦è®¡ç®—得出。 | 布尔值 | å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºfalse。 | ```json { "src": [ "pages/index/mainPage", "pages/second/payment", "pages/third/shopping_cart", "pages/four/owner" ], "window": { "designWidth": 720, "autoDesignWidth": false } } ``` ## metadataæ ‡ç¾ è¯¥æ ‡ç¾æ ‡è¯†HAP的自定义元信æ¯ï¼Œæ ‡ç¾å€¼ä¸ºæ•°ç»„类型,包å«nameã€valueã€resource三个åæ ‡ç¾ã€‚ **表5** metadataæ ‡ç¾è¯´æ˜Ž | 属性å称 | å«ä¹‰ | æ•°æ®ç±»åž‹ | 是å¦å¯ç¼ºçœ | | -------- | -------- | -------- | -------- | | name | æ ‡è¯†æ•°æ®é¡¹çš„å称,å–值为长度ä¸è¶…过255å—节的å—符串。 | å—符串 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºç©ºã€‚ | | value | æ ‡è¯†æ•°æ®é¡¹çš„值,å–值为长度ä¸è¶…过255å—节的å—符串。 | å—符串 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºç©ºã€‚ | | resource | æ ‡è¯†å®šä¹‰ç”¨æˆ·è‡ªå®šä¹‰æ•°æ®æ ¼å¼ï¼Œå–值为长度ä¸è¶…过255å—节的å—ç¬¦ä¸²ï¼Œå†…å®¹ä¸ºæ ‡è¯†è¯¥æ•°æ®çš„资æºç´¢å¼•ã€‚| å—符串 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºç©ºã€‚ | metadataæ ‡ç¾å¯é…置主窗的默认大å°å’Œä½ç½®ï¼ˆå•ä½ä¸ºvp),name为ohos.ability.window.height表示主窗默认高度,name为ohos.ability.window.width表示主窗默认宽度,name为ohos.ability.window.left表示主窗默认左边的ä½ç½®ï¼Œå…¶é…ç½®æ ¼å¼ä¸º(对é½æ–¹å¼)(+|-å移é‡),对é½æ–¹å¼åŒ…括centerã€leftå’Œright,默认值为left,å移é‡ä¸º0æ—¶å¯ä»¥çœç•¥ï¼Œname为ohos.ability.window.top表示主窗顶部的ä½ç½®ï¼Œå¯¹é½æ–¹å¼åŒ…括centerã€topå’Œbottom,默认值为top,两者åŒæ—¶çœç•¥æŒ‰ç…§ç³»ç»Ÿé»˜è®¤å±‚å è§„æ ¼ã€‚ metadataæ ‡ç¾å¯é…置使能移除å¯åŠ¨é¡µåŠŸèƒ½ï¼Œname为enable.remove.starting.window,valueå¯é…置为true/false,未é…置则默认为false。 resource属性值使用“\$profile:文件åâ€çš„æ–¹å¼æŒ‡å®šæ–‡ä»¶æ‰€åœ¨ä½ç½®ï¼Œ\$profile表示资æºçš„路径为工程ä¸çš„/resources/base/profile目录下。例如\$profile:shortcuts_config指定了/resources/base/profile/shortcuts_config.jsoné…置文件。 ```json { "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" }, { "name": "ohos.ability.window.height", "value": "987" }, { "name": "ohos.ability.window.width", "value": "1300" }, { "name": "ohos.ability.window.left", "value": "right-50" }, { "name": "ohos.ability.window.top", "value": "center+50" }, { "name": "enable.remove.starting.window", "value": "true" }], }], "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æ ‡ç¾ abilitiesæ ‡ç¾æè¿°UIAbility组件的é…置信æ¯ï¼Œæ ‡ç¾å€¼ä¸ºæ•°ç»„ç±»åž‹ï¼Œè¯¥æ ‡ç¾ä¸‹çš„é…ç½®åªå¯¹å½“å‰UIAbility生效。 **表6** abilitiesæ ‡ç¾è¯´æ˜Ž | 属性å称 | å«ä¹‰ | æ•°æ®ç±»åž‹ | 是å¦å¯ç¼ºçœ | | -------- | -------- | -------- | -------- | | name | æ ‡è¯†å½“å‰UIAbility组件的å称,确ä¿è¯¥å称在整个应用ä¸å”¯ä¸€ã€‚å–值为长度ä¸è¶…过127å—节的å—符串,ä¸æ”¯æŒä¸æ–‡ã€‚ | å—符串 | è¯¥æ ‡ç¾ä¸å¯ç¼ºçœã€‚ | | srcEntry | æ ‡è¯†å…¥å£UIAbility的代ç 路径,å–值为长度ä¸è¶…过127å—节的å—符串。 | å—符串 | è¯¥æ ‡ç¾ä¸å¯ç¼ºçœã€‚ | | [launchType](../application-models/uiability-launch-type.md) | æ ‡è¯†å½“å‰UIAbility组件的å¯åŠ¨æ¨¡å¼ï¼Œæ”¯æŒçš„å–值如下:<br/>- multiton:多实例模å¼ï¼Œæ¯æ¬¡å¯åŠ¨åˆ›å»ºä¸€ä¸ªæ–°å®žä¾‹ã€‚<br/>- singleton:å•å®žä¾‹æ¨¡å¼ï¼Œä»…第一次å¯åŠ¨åˆ›å»ºæ–°å®žä¾‹ã€‚<br/>- specified:指定实例模å¼ï¼Œè¿è¡Œæ—¶ç”±å¼€å‘者决定是å¦åˆ›å»ºæ–°å®žä¾‹ã€‚<br/>- standard:multiton的曾用å,效果与多实例模å¼ä¸€è‡´ã€‚ | å—符串 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œè¯¥æ ‡ç¾ç¼ºçœä¸ºâ€œsingletonâ€ã€‚ | | description | æ ‡è¯†å½“å‰UIAbility组件的æè¿°ä¿¡æ¯ï¼Œå–值为长度ä¸è¶…过255å—节的å—符串。è¦æ±‚采用æè¿°ä¿¡æ¯çš„资æºç´¢å¼•ï¼Œä»¥æ”¯æŒå¤šè¯è¨€ã€‚ | å—符串 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºç©ºã€‚ | | icon | æ ‡è¯†å½“å‰UIAbility组件的[å›¾æ ‡](../application-models/application-component-configuration-stage.md#生æˆæœºåˆ¶),å–å€¼ä¸ºå›¾æ ‡èµ„æºæ–‡ä»¶çš„索引。 | å—符串 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºç©ºã€‚ | | label | æ ‡è¯†å½“å‰UIAbility组件对用户显示的[å称](../application-models/application-component-configuration-stage.md#生æˆæœºåˆ¶),è¦æ±‚采用该å称的资æºç´¢å¼•ï¼Œä»¥æ”¯æŒå¤šè¯è¨€ã€‚å–值为长度ä¸è¶…过255å—节的å—符串。 | å—符串 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºç©ºã€‚ | | permissions | æ ‡è¯†å½“å‰UIAbility组件自定义的æƒé™ä¿¡æ¯ã€‚当其他应用访问该UIAbility时,需è¦ç”³è¯·ç›¸åº”çš„æƒé™ä¿¡æ¯ã€‚<br/>ä¸€ä¸ªæ•°ç»„å…ƒç´ ä¸ºä¸€ä¸ªæƒé™å称。通常采用åå‘域åæ ¼å¼ï¼ˆä¸è¶…过255å—节),å–值为系统预定义的æƒé™ã€‚ | å—符串数组 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºç©ºã€‚ | | [metadata](#metadataæ ‡ç¾) | æ ‡è¯†å½“å‰UIAbility组件的元信æ¯ã€‚ | 对象数组 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºç©ºã€‚ | | exported | æ ‡è¯†å½“å‰UIAbility组件是å¦å¯ä»¥è¢«å…¶ä»–应用调用。<br/>- true:表示å¯ä»¥è¢«å…¶ä»–应用调用。<br/>- false:表示ä¸å¯ä»¥è¢«å…¶ä»–åº”ç”¨è°ƒç”¨ï¼ŒåŒ…æ‹¬æ— æ³•è¢«aa工具命令拉起应用。 | 布尔值 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºfalse。 | | continuable | æ ‡è¯†å½“å‰UIAbility组件是å¦æ”¯æŒè·¨ç«¯è¿ç§»ã€‚<br/>- true:表示支æŒè¿ç§»ã€‚<br/>- false:表示ä¸æ”¯æŒè¿ç§»ã€‚ | 布尔值 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºfalse。 | | [skills](#skillsæ ‡ç¾) | æ ‡è¯†å½“å‰UIAbility组件或ExtensionAbility组件能够接收的[Want](../application-models/want-overview.md)特å¾é›†ï¼Œä¸ºæ•°ç»„æ ¼å¼ã€‚<br/>é…置规则:<br/>- 对于Entry类型的HAP,应用å¯ä»¥é…置多个具有入å£èƒ½åŠ›çš„skillsæ ‡ç¾ï¼ˆå³é…置了ohos.want.action.homeå’Œentity.system.home)。<br/>- 对于Feature类型的HAP,åªæœ‰åº”用å¯ä»¥é…置具有入å£èƒ½åŠ›çš„skillsæ ‡ç¾ï¼ŒæœåŠ¡ä¸å…许é…置。 | 对象数组 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºç©ºã€‚ | | backgroundModes | æ ‡è¯†å½“å‰UIAbility组件的长时任务集åˆï¼ŒæŒ‡å®šç”¨äºŽæ»¡è¶³ç‰¹å®šç±»åž‹çš„长时任务。<br/>长时任务类型有如下:<br/>- dataTransfer:通过网络/对端设备进行数æ®ä¸‹è½½ã€å¤‡ä»½ã€åˆ†äº«ã€ä¼ 输ç‰ã€‚<br/>- audioPlayback:音频æ’放。<br/>- audioRecording:录音。<br/>- location:定ä½ã€å¯¼èˆªã€‚<br/>- bluetoothInteraction:è“牙扫æã€è¿žæŽ¥ã€ä¼ 输(穿戴)。<br/>- multiDeviceConnection:多设备互è”。<br/>- taskKeeping:计算。 | å—符串数组 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºç©ºã€‚ | | startWindowIcon | æ ‡è¯†å½“å‰UIAbility组件å¯åŠ¨é¡µé¢å›¾æ ‡èµ„æºæ–‡ä»¶çš„索引,å–值为长度ä¸è¶…过255å—节的å—符串。 | å—符串 | è¯¥æ ‡ç¾ä¸å¯ç¼ºçœã€‚ | | startWindowBackground | æ ‡è¯†å½“å‰UIAbility组件å¯åŠ¨é¡µé¢èƒŒæ™¯é¢œè‰²èµ„æºæ–‡ä»¶çš„索引,å–值为长度ä¸è¶…过255å—节的å—符串。<br/>å–值示例:$color:red。| å—符串 | è¯¥æ ‡ç¾ä¸å¯ç¼ºçœã€‚ | | removeMissionAfterTerminate | æ ‡è¯†å½“å‰UIAbility组件销æ¯åŽï¼Œæ˜¯å¦ä»Žä»»åŠ¡åˆ—表ä¸ç§»é™¤ä»»åŠ¡ã€‚<br/>- true表示销æ¯åŽç§»é™¤ä»»åŠ¡ã€‚<br/>- false表示销æ¯åŽä¸ç§»é™¤ä»»åŠ¡ã€‚ | 布尔值 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºfalse。 | | orientation | æ ‡è¯†å½“å‰UIAbility组件å¯åŠ¨æ—¶çš„æ–¹å‘,支æŒé…置枚举和å¯åŠ¨æ–¹å‘资æºç´¢å¼•ã€‚枚举支æŒçš„å–值如下:<br/>- unspecified:未指定方å‘,由系统自动判æ–显示方å‘。<br/>- landscape:横å±ã€‚<br/>- portrait:竖å±ã€‚<br/>- follow_recent:跟éšèƒŒæ™¯çª—å£çš„旋转模å¼ã€‚<br/>- landscape_inverted:åå‘横å±ã€‚<br/>- portrait_inverted:åå‘ç«–å±ã€‚<br/>- auto_rotation:éšä¼ 感器旋转。<br/>- auto_rotation_landscapeï¼šä¼ æ„Ÿå™¨æ¨ªå±æ—‹è½¬ï¼ŒåŒ…括横å±å’Œåå‘横å±ã€‚<br/>- auto_rotation_portraitï¼šä¼ æ„Ÿå™¨ç«–å±æ—‹è½¬ï¼ŒåŒ…括竖å±å’Œåå‘ç«–å±ã€‚<br/>- auto_rotation_restrictedï¼šä¼ æ„Ÿå™¨å¼€å…³æ‰“å¼€ï¼Œæ–¹å‘å¯éšä¼ 感器旋转。<br/>- auto_rotation_landscape_restrictedï¼šä¼ æ„Ÿå™¨å¼€å…³æ‰“å¼€ï¼Œæ–¹å‘å¯éšä¼ 感器旋转为横å±ï¼Œ 包括横å±å’Œåå‘横å±ã€‚<br/>- auto_rotation_portrait_restrictedï¼šä¼ æ„Ÿå™¨å¼€å…³æ‰“å¼€ï¼Œæ–¹å‘éšå¯ä¼ 感器旋转为竖å±ï¼Œ 包括竖å±å’Œåå‘ç«–å±ã€‚<br/>- lockedï¼šä¼ æ„Ÿå™¨å¼€å…³å…³é—,方å‘é”定。<br/>- auto_rotation_unspecified:å—开关控制和由系统判定的自动旋转模å¼ã€‚<br/>- follow_desktop:跟éšæ¡Œé¢çš„旋转模å¼ã€‚<br/> é…ç½®å¯åŠ¨æ–¹å‘的资æºç´¢å¼•æ—¶ï¼Œå–值为长度ä¸è¶…过255å—节的å—符串。<br/> å¯åŠ¨æ–¹å‘资æºç´¢å¼•é…置示例:$string:orientation。 | å—符串 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºunspecified。 | | supportWindowMode | æ ‡è¯†å½“å‰UIAbility组件所支æŒçš„窗å£æ¨¡å¼ã€‚支æŒçš„å–值如下:<br/>- fullscreen:全å±æ¨¡å¼ã€‚<br/>- split:分å±æ¨¡å¼ã€‚<br/>- floating:悬浮窗模å¼ã€‚ | å—符串数组 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸º<br/>["fullscreen", "split", "floating"]。 | | <!--DelRow-->priority | æ ‡è¯†å½“å‰UIAbility组件的优先级。[éšå¼æŸ¥è¯¢](../application-models/explicit-implicit-want-mappings.md)时,优先级越高,UIAbility在返回列表越é å‰ã€‚å–值范围0~10,数值越大,优先级越高。<br/>**说明:**<br/>三方应用的é…ç½®ä¸ç”Ÿæ•ˆï¼Œå½“å‰é…置仅在系统应用ä¸æœ‰æ•ˆã€‚ | 整型数值 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸º0。 | | maxWindowRatio | æ ‡è¯†å½“å‰UIAbility组件支æŒçš„æœ€å¤§çš„å®½é«˜æ¯”ã€‚è¯¥æ ‡ç¾æœ€å°å–值为0。 | 数值 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºå¹³å°æ”¯æŒçš„最大的宽高比。 | | minWindowRatio | æ ‡è¯†å½“å‰UIAbility组件支æŒçš„最å°çš„å®½é«˜æ¯”ã€‚è¯¥æ ‡ç¾æœ€å°å–值为0。 | 数值 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºå¹³å°æ”¯æŒçš„最å°çš„宽高比。 | | maxWindowWidth | æ ‡è¯†å½“å‰UIAbility组件支æŒçš„最大的窗å£å®½åº¦ï¼Œå®½åº¦å•ä½ä¸ºvp。<br/>最å°å–值为minWindowWidth,最大å–值为平å°æ”¯æŒçš„最大窗å£å®½åº¦ã€‚窗å£å°ºå¯¸å¯ä»¥å‚考[窗å£å¤§å°é™åˆ¶](../windowmanager/window-overview.md#约æŸä¸Žé™åˆ¶)。 | 数值 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºå¹³å°æ”¯æŒçš„最大的窗å£å®½åº¦ã€‚ | | minWindowWidth | æ ‡è¯†å½“å‰UIAbility组件支æŒçš„最å°çš„窗å£å®½åº¦ï¼Œ 宽度å•ä½ä¸ºvp。<br/>最å°å–值为平å°æ”¯æŒçš„最å°çª—å£å®½åº¦ï¼Œæœ€å¤§å–值为maxWindowWidth。窗å£å°ºå¯¸å¯ä»¥å‚考[窗å£å¤§å°é™åˆ¶](../windowmanager/window-overview.md#约æŸä¸Žé™åˆ¶)。 | 数值 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºå¹³å°æ”¯æŒçš„最å°çš„窗å£å®½åº¦ã€‚ | | maxWindowHeight | æ ‡è¯†å½“å‰UIAbility组件支æŒçš„最大的窗å£é«˜åº¦ï¼Œ 高度å•ä½ä¸ºvp。<br/>最å°å–值为minWindowHeight,最大å–值为平å°æ”¯æŒçš„最大窗å£é«˜åº¦ã€‚ 窗å£å°ºå¯¸å¯ä»¥å‚考[窗å£å¤§å°é™åˆ¶](../windowmanager/window-overview.md#约æŸä¸Žé™åˆ¶)。| 数值 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºå¹³å°æ”¯æŒçš„最大的窗å£é«˜åº¦ã€‚ | | minWindowHeight | æ ‡è¯†å½“å‰UIAbility组件支æŒçš„最å°çš„窗å£é«˜åº¦ï¼Œ 高度å•ä½ä¸ºvp。<br/>最å°å–值为平å°æ”¯æŒçš„最å°çª—å£é«˜åº¦ï¼Œæœ€å¤§å–值为maxWindowHeight。窗å£å°ºå¯¸å¯ä»¥å‚考[窗å£å¤§å°é™åˆ¶](../windowmanager/window-overview.md#约æŸä¸Žé™åˆ¶)。| 数值 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºå¹³å°æ”¯æŒçš„最å°çš„窗å£é«˜åº¦ã€‚ | | <!--DelRow-->excludeFromMissions | æ ‡è¯†å½“å‰UIAbility组件是å¦åœ¨æœ€è¿‘任务列表ä¸æ˜¾ç¤ºã€‚<br/>- true:表示ä¸åœ¨ä»»åŠ¡åˆ—表ä¸æ˜¾ç¤ºã€‚<br/>- false:表示在任务列表ä¸æ˜¾ç¤ºã€‚<br/>**说明:**<br/>三方应用的é…ç½®ä¸ç”Ÿæ•ˆï¼Œå½“å‰é…置仅在系统应用ä¸æœ‰æ•ˆï¼Œè‹¥è¦ä½¿ç³»ç»Ÿåº”用é…置生效,需申请应用特æƒAllowAbilityExcludeFromMissions,详è§[应用特æƒé…置指导](../../device-dev/subsystems/subsys-app-privilege-config-guide.md)。| 布尔值 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºfalse。 | | recoverable | æ ‡è¯†å½“å‰UIAbility组件是å¦æ”¯æŒåœ¨æ£€æµ‹åˆ°åº”用故障åŽï¼Œæ¢å¤åˆ°åº”用原界é¢ã€‚<br/>- true:支æŒæ£€æµ‹åˆ°å‡ºçŽ°æ•…éšœåŽï¼Œæ¢å¤åˆ°åŽŸç•Œé¢ã€‚<br/>- false:ä¸æ”¯æŒæ£€æµ‹åˆ°å‡ºçŽ°æ•…éšœåŽï¼Œæ¢å¤åˆ°åŽŸç•Œé¢ã€‚ | 布尔值 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºfalse。 | | <!--DelRow-->unclearableMission | æ ‡è¯†å½“å‰UIAbility组件是å¦æ”¯æŒä»Žæœ€è¿‘任务列表ä¸ç§»é™¤ã€‚<br/>- true:表示在任务列表ä¸ä¸å¯ç§»é™¤ã€‚<br/>- false:表示在任务列表ä¸å¯ä»¥ç§»é™¤ã€‚<br/>**说明:**<br/>三方应用的é…ç½®ä¸ç”Ÿæ•ˆï¼Œå½“å‰é…置仅在系统应用ä¸æœ‰æ•ˆï¼Œè‹¥è¦ä½¿ç³»ç»Ÿåº”用é…置生效,需申请应用特æƒAllowMissionNotCleared,详è§[应用特æƒé…置指导](../../device-dev/subsystems/subsys-app-privilege-config-guide.md)。 | 布尔值 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºfalse。 | | isolationProcess | æ ‡è¯†ç»„ä»¶èƒ½å¦è¿è¡Œåœ¨ç‹¬ç«‹çš„进程ä¸ã€‚<br/>- true:表示能è¿è¡Œåœ¨ç‹¬ç«‹çš„进程ä¸ã€‚<br/>- false:表示ä¸èƒ½è¿è¡Œåœ¨ç‹¬ç«‹çš„进程ä¸ã€‚ | 布尔值 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºfalse。 | | excludeFromDock | æ ‡è¯†å½“å‰UIAbility组件是å¦æ”¯æŒä»Ždock区域éšè—å›¾æ ‡ã€‚<br/>- true:表示在dock区域éšè—。<br/>- false:表示ä¸èƒ½åœ¨dock区域éšè—。 | 布尔值 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºfalse。 | | preferMultiWindowOrientation | æ ‡è¯†å½“å‰UIAbility组件多窗布局方å‘:<br/>- default:缺çœå€¼ï¼Œå‚æ•°ä¸é…置默认值,建议其他应用类é…置。<br/>- portrait:多窗布局方å‘为竖å‘,建议竖å‘游æˆç±»åº”用é…置。<br/>- landscape:多窗布局方å‘为横å‘,é…ç½®åŽæ”¯æŒæ¨ªå±æ‚¬æµ®çª—和上下分å±ï¼Œå»ºè®®æ¨ªå‘游æˆç±»åº”用é…置。<br/>- landscape_auto:多窗布局动æ€å¯å˜ä¸ºæ¨ªå‘,需è¦é…åˆAPI enableLandScapeMultiWindow/disableLandScapeMultiWindow使用,建议视频类应用é…置。 | å—符串 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºdefault。 | | continueType | æ ‡è¯†å½“å‰UIAbility组件的跨端è¿ç§»ç±»åž‹ã€‚ | å—符串数组 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºå½“å‰ç»„件的å称。 | | continueBundleName | æ ‡è¯†å½“å‰åº”用支æŒè·¨ç«¯è¿ç§»çš„其它应用å称列表。<br/>**说明:**<br/>ä¸èƒ½é…置为本应用包å,仅为了åšå¼‚包åè¿ç§»ä½¿ç”¨ã€‚ | å—符串数组 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºç©ºã€‚ | | process | æ ‡è¯†ç»„ä»¶çš„è¿›ç¨‹æ ‡ç¾ã€‚<br/>**说明:**<br/>仅在[2in1](./module-configuration-file.md#devicetypesæ ‡ç¾)设备上生效,UIAbility组件和type为embeddedUIçš„ExtensionAbilityç»„ä»¶æ ‡ç¾ä¸€è‡´æ—¶è¿è¡Œåœ¨åŒä¸€ä¸ªè¿›ç¨‹ä¸ã€‚ | å—符串 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºç©ºã€‚ | abilities示例: <!--RP3--> ```json { "abilities": [{ "name": "EntryAbility", "srcEntry": "./ets/entryability/EntryAbility.ets", "launchType":"singleton", "description": "$string:description_main_ability", "icon": "$media:layered_image", "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": "$string:orientation", "supportWindowMode": ["fullscreen", "split", "floating"], "maxWindowRatio": 3.5, "minWindowRatio": 0.5, "maxWindowWidth": 2560, "minWindowWidth": 1400, "maxWindowHeight": 300, "minWindowHeight": 200, "excludeFromMissions": false, "unclearableMission": false, "excludeFromDock": false, "preferMultiWindowOrientation": "default", "isolationProcess": false, "continueType": [ "continueType1", "continueType2" ], "continueBundleName": [ "com.example.myapplication1", "com.example.myapplication2" ], "process": ":processTag" }] } ``` <!--RP3End--> ## skillsæ ‡ç¾ è¯¥æ ‡ç¾æ ‡è¯†UIAbility组件或者ExtensionAbility组件能够接收的[Want](../application-models/want-overview.md)的特å¾ã€‚ **表7** skillsæ ‡ç¾è¯´æ˜Ž | 属性å称 | å«ä¹‰ | æ•°æ®ç±»åž‹ | 是å¦å¯ç¼ºçœ | | -------- | -------- | -------- | -------- | | actions | æ ‡è¯†èƒ½å¤ŸæŽ¥æ”¶çš„Action值集åˆï¼Œå–值通常为系统预定义的action值,也å…许自定义。<br>一个skillä¸ä¸å»ºè®®é…置多个action,å¦åˆ™å¯èƒ½å¯¼è‡´æ— 法匹é…预期场景。 | å—符串数组 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºç©ºã€‚ | | entities | æ ‡è¯†èƒ½å¤ŸæŽ¥æ”¶çš„Entity值的集åˆã€‚<br>一个skillä¸ä¸å»ºè®®é…置多个entity,å¦åˆ™å¯èƒ½å¯¼è‡´æ— 法匹é…预期场景。 | å—符串数组 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºç©ºã€‚ | | uris | æ ‡è¯†ä¸ŽWantä¸URI(Uniform Resource Identifier)相匹é…的集åˆã€‚数组å…许的最大数é‡ä¸º512。 | 对象数组 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºç©ºã€‚ | | permissions | æ ‡è¯†å½“å‰UIAbility组件自定义的æƒé™ä¿¡æ¯ã€‚当其他应用访问该UIAbility时,需è¦ç”³è¯·ç›¸åº”çš„æƒé™ä¿¡æ¯ã€‚<br/>ä¸€ä¸ªæ•°ç»„å…ƒç´ ä¸ºä¸€ä¸ªæƒé™å称。通常采用åå‘域åæ ¼å¼ï¼ˆä¸è¶…过255å—节),å–值为系统预定义的æƒé™ã€‚ | å—符串数组 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºç©ºã€‚ | | domainVerify | æ ‡è¯†æ˜¯å¦å¼€å¯åŸŸåæ ¡éªŒã€‚ | 布尔值 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºfalse。 | **表8** urisæ ‡ç¾è¯´æ˜Ž | 属性å称 | å«ä¹‰ | æ•°æ®ç±»åž‹ | 是å¦å¯ç¼ºçœ | | -------- | -------- | -------- | -------- | | scheme | æ ‡è¯†URIçš„åè®®å部分,常è§çš„有httpã€httpsã€fileã€ftpç‰ã€‚ | å—符串 | urisä¸ä»…é…ç½®typeæ—¶å¯ä»¥ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºç©ºï¼Œå¦åˆ™ä¸å¯ç¼ºçœã€‚ | | host | æ ‡è¯†URI的主机地å€éƒ¨åˆ†ï¼Œè¯¥å—段在schemeå˜åœ¨æ—¶æ‰æœ‰æ„义。常è§çš„æ–¹å¼ï¼š<br/>- 域åæ–¹å¼ï¼Œå¦‚example.com。<br/>- IP地å€æ–¹å¼ï¼Œå¦‚10.10.10.1。 | å—符串 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºç©ºã€‚ | | port | æ ‡è¯†URI的端å£éƒ¨åˆ†ã€‚如http默认端å£ä¸º80,https默认端å£æ˜¯443,ftp默认端å£æ˜¯21。该å—段在schemeå’Œhost都å˜åœ¨æ—¶æ‰æœ‰æ„义。 | å—符串 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºç©ºã€‚ | | path \| pathStartWith \| pathRegex | æ ‡è¯†URI的路径部分,pathã€pathStartWithå’ŒpathRegexé…置时三选一。pathæ ‡è¯†URI与wantä¸çš„路径部分全匹é…,pathStartWithæ ‡è¯†URI与wantä¸çš„路径部分å…许å‰ç¼€åŒ¹é…,pathRegexæ ‡è¯†URI与wantä¸çš„路径部分å…许æ£åˆ™åŒ¹é…。该å—段在schemeå’Œhost都å˜åœ¨æ—¶æ‰æœ‰æ„义。 | å—符串 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºç©ºã€‚ | | type | æ ‡è¯†ä¸ŽWant相匹é…çš„æ•°æ®ç±»åž‹ï¼Œä½¿ç”¨MIME(Multipurpose Internet Mail Extensions)类型规范和[UniformDataType](../reference/apis-arkdata/js-apis-data-uniformTypeDescriptor.md)类型规范。å¯ä¸ŽschemeåŒæ—¶é…置,也å¯ä»¥å•ç‹¬é…置。 | å—符串 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºç©ºã€‚ | | utd | æ ‡è¯†ä¸ŽWant相匹é…çš„[æ ‡å‡†åŒ–æ•°æ®ç±»åž‹](../reference/apis-arkdata/js-apis-data-uniformTypeDescriptor.md),适用于分享ç‰åœºæ™¯ã€‚ | å—符串 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºç©ºã€‚ | | maxFileSupported | å¯¹äºŽæŒ‡å®šç±»åž‹çš„æ–‡ä»¶ï¼Œæ ‡è¯†ä¸€æ¬¡èƒ½æŽ¥æ”¶æˆ–æ‰“å¼€çš„æœ€å¤§æ•°é‡ï¼Œé€‚用于分享ç‰åœºæ™¯ï¼Œéœ€è¦ä¸Žutdé…åˆä½¿ç”¨ã€‚| æ•´æ•° | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸º0。| | linkFeature | æ ‡è¯†URIæ供的功能类型(如文件打开ã€åˆ†äº«ã€å¯¼èˆªç‰ï¼‰ï¼Œç”¨äºŽå®žçŽ°åº”用间跳转。å–值为长度ä¸è¶…过127å—节的å—符串,ä¸æ”¯æŒä¸æ–‡ã€‚详情è§[linkFeatureæ ‡ç¾è¯´æ˜Ž](../application-models/app-uri-config.md#linkfeatureæ ‡ç¾è¯´æ˜Ž)。 | å—符串 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºç©ºã€‚| skills示例: ```json { "abilities": [ { "skills": [ { "actions": [ "ohos.want.action.home" ], "entities": [ "entity.system.home" ], "uris": [ { "scheme":"http", "host":"example.com", "port":"80", "path":"path", "type": "text/*", "linkFeature": "Login" } ], "permissions": [], "domainVerify": false } ] } ] } ``` ## extensionAbilitiesæ ‡ç¾ æè¿°extensionAbilitiesçš„é…置信æ¯ï¼Œæ ‡ç¾å€¼ä¸ºæ•°ç»„ç±»åž‹ï¼Œè¯¥æ ‡ç¾ä¸‹çš„é…ç½®åªå¯¹å½“å‰extensionAbilities生效。 **表9** extensionAbilitiesæ ‡ç¾è¯´æ˜Ž | 属性å称 | å«ä¹‰ | æ•°æ®ç±»åž‹ | 是å¦å¯ç¼ºçœ | | -------- | -------- | -------- | -------- | | name | æ ‡è¯†å½“å‰ExtensionAbility组件的å称,确ä¿è¯¥å称在整个应用ä¸å”¯ä¸€ï¼Œå–值为长度ä¸è¶…过127å—节的å—符串。 | å—符串 | è¯¥æ ‡ç¾ä¸å¯ç¼ºçœã€‚ | | srcEntry | æ ‡è¯†å½“å‰ExtensionAbility组件所对应的代ç 路径,å–值为长度ä¸è¶…过127å—节的å—符串。 | å—符串 | è¯¥æ ‡ç¾ä¸å¯ç¼ºçœã€‚ | | description | æ ‡è¯†å½“å‰ExtensionAbility组件的æ述,å–值为长度ä¸è¶…过255å—节的å—符串,å¯ä»¥æ˜¯å¯¹æ述内容的资æºç´¢å¼•ï¼Œç”¨äºŽæ”¯æŒå¤šè¯è¨€ã€‚ | å—符串 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºç©ºã€‚ | | icon | æ ‡è¯†å½“å‰ExtensionAbilityç»„ä»¶çš„å›¾æ ‡ï¼Œå–值为资æºæ–‡ä»¶çš„索引。如果ExtensionAbility组件被é…置为MainElementï¼Œè¯¥æ ‡ç¾å¿…é¡»é…置。 | å—符串 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºç©ºã€‚ | | label | æ ‡è¯†å½“å‰ExtensionAbility组件对用户显示的å称,å–值为该å称的资æºç´¢å¼•ï¼Œä»¥æ”¯æŒå¤šè¯è¨€ï¼Œå—符串长度ä¸è¶…过255å—节。如果ExtensionAbility被é…置当å‰Moduleçš„mainElementæ—¶ï¼Œè¯¥æ ‡ç¾å¿…é¡»é…置,且è¦ç¡®ä¿åº”用内唯一。 | å—符串 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºç©ºã€‚ | | type | æ ‡è¯†å½“å‰ExtensionAbility组件的类型,支æŒçš„å–值如下:<br/>- form:å¡ç‰‡çš„ExtensionAbility。<br/>- workScheduler:延时任务的ExtensionAbility。<br/>- inputMethod:输入法的ExtensionAbility。<!--Del--><br/>- service:åŽå°è¿è¡Œçš„service组件。<!--DelEnd--><br/>- accessibility:辅助能力的ExtensionAbility。<!--Del--><br/>- fileAccess:公共数æ®è®¿é—®çš„ExtensionAbility,å…许应用程åºæ供文件和文件夹给文件管ç†ç±»åº”用展示。<br/>- dataShare:数æ®å…±äº«çš„ExtensionAbility。<!--DelEnd--><br/>- staticSubscriber:é™æ€å¹¿æ’çš„ExtensionAbility。<br/>- wallpaper:å£çº¸çš„ExtensionAbility。<br/>- backup:数æ®å¤‡ä»½çš„ExtensionAbility。<br/>- window:该ExtensionAbility会在å¯åŠ¨è¿‡ç¨‹ä¸åˆ›å»ºä¸€ä¸ªwindow,为开å‘者æ供界é¢å¼€å‘。开å‘者开å‘出æ¥çš„ç•Œé¢å°†é€šè¿‡UIExtensionComponent控件组åˆåˆ°å…¶ä»–应用的窗å£ä¸ã€‚<br/>- thumbnail:获å–文件缩略图的ExtensionAbility,开å‘者å¯ä»¥å¯¹è‡ªå®šä¹‰æ–‡ä»¶ç±»åž‹çš„文件æ供缩略。<br/>- preview:该ExtensionAbility会将文件解æžåŽåœ¨ä¸€ä¸ªçª—å£ä¸æ˜¾ç¤ºï¼Œå¼€å‘者å¯ä»¥é€šè¿‡å°†æ¤çª—å£ç»„åˆåˆ°å…¶ä»–应用窗å£ä¸ã€‚<br/>- print:打å°æ¡†æž¶çš„ExtensionAbility。<br/>- push:推é€çš„ExtensionAbility。<br/>- driver:驱动框架的ExtensionAbility。<br/>- remoteNotification:远程通知的ExtensionAbility。<br/>- remoteLocation:远程定ä½çš„ExtensionAbility。<br/>- voip:网络音视频通è¯çš„ExtensionAbility。<br/>- action:自定义æ“作业务模æ¿çš„ExtensionAbility,为开å‘者æ供基于UIExtension的自定义æ“作业务模æ¿ã€‚<!--Del--><br/>- adsService:广告业务的ExtensionAbility,æ供广告业务框架。<!--DelEnd--><br/>- embeddedUI:嵌入å¼UI扩展能力,æ供跨进程界é¢åµŒå…¥çš„能力。<br/>- insightIntentUI:为开å‘者æ供能被å°è‰ºæ„图调用,以窗å£å½¢æ€å‘ˆçŽ°å†…容的扩展能力。<br/>- ads:广告业务的ExtensionAbility,与AdComponent控件组åˆä½¿ç”¨ï¼Œå°†å¹¿å‘Šé¡µé¢å±•ç¤ºåˆ°å…¶ä»–应用ä¸ã€‚仅支æŒè®¾å¤‡åŽ‚商使用。<br/>- photoEditor:图片编辑业务的ExtensionAbility,为开å‘者æ供基于UIExtension的图片编辑业务模版。<br/>- appAccountAuthorization:应用账å·æŽˆæƒæ‰©å±•èƒ½åŠ›çš„ExtensionAbility,用于处ç†è´¦å·æŽˆæƒè¯·æ±‚,比如账å·ç™»å½•æŽˆæƒã€‚<br/>- autoFill/password:用于账å·å’Œå¯†ç 自动填充业务的ExtensionAbility,支æŒæ•°æ®çš„ä¿å˜ã€å¡«å……能力。<br/>- hms/account:应用账å·ç®¡ç†èƒ½åŠ›çš„ExtensionAbility。<!--Del--><br/>- sysDialog/atomicServicePanel:æ供构建原å化æœåŠ¡æœåŠ¡é¢æ¿çš„基础能力的ExtensionAbility,使用时基于UIExtensionAbility实现。<br/>- sysDialog/userAuth:本地用户鉴æƒçš„ExtensionAbility。<br/>- sysDialog/common:通用弹窗的ExtensionAbility。<br/>- sysDialog/power:关机é‡å¯å¼¹çª—çš„ExtensionAbility。<br/>- sysDialog/print:打å°æ¨¡æ€å¼¹çª—çš„ExtensionAbility。<br/>- sysDialog/meetimeCall:畅连通è¯çš„ExtensionAbility。<br/>- sysDialog/meetimeContact:畅连è”系人的ExtensionAbility。<br/>- sysPicker/meetimeMessage:畅连消æ¯çš„ExtensionAbility。<br/>- sysPicker/meetimeContact:畅连è”系人列表的ExtensionAbility。<br/>- sysPicker/meetimeCallLog:畅连通è¯è®°å½•åˆ—表的ExtensionAbility。<br/>- sysPicker/share:系统分享的ExtensionAbility。<br/>- sysPicker/mediaControl:投æ’组件的ExtensionAbility。<br/>- sysPicker/photoPicker:三方应用通过对应的UIExtensionType拉起图库pickerç•Œé¢ã€‚<br/>- sysPicker/filePicker:文件下载弹窗的ExtensionAbility。<br/>- sysPicker/audioPicker:音频管ç†å¼¹çª—çš„ExtensionAbility。<br/>- sysPicker/photoEditor:图片编辑弹窗的ExtensionAbility。<br/>- sys/commonUI:éžé€šç”¨çš„ExtensionAbility,æ供业务属性强相关的嵌入å¼æ˜¾ç¤ºæˆ–弹框。<!--DelEnd--><br/>- autoFill/smart:用于情景化场景自动填充业务的ExtensionAbility,支æŒæ•°æ®çš„ä¿å˜ã€å¡«å……能力。<br/>- uiService:弹窗æœåŠ¡ç»„件,在å¯åŠ¨è¿‡ç¨‹ä¸ä¼šåˆ›å»ºwindow,并支æŒåŒå‘通信。<br/>- statusBarView:一æ¥ç›´è¾¾çš„ExtensionAbility。<br/>- recentPhoto:最近照片推èçš„ExtensionAbility。<!--Del--><br/>- fence:地ç†å›´æ çš„ExtensionAbility。<br/>- callerInfoQuery:ä¼ä¸šè”系人查询的ExtensionAbility。<br/>**说明:**<br/>å…¶ä¸serviceã€adsServiceã€sys/commonUIã€fileAccessã€sysDialog类型ã€sysPicker类型ã€dataShare类型和uiService类型,三方应用的é…ç½®ä¸ç”Ÿæ•ˆï¼Œå½“å‰é…置仅在系统应用ä¸æœ‰æ•ˆã€‚<!--DelEnd--> | å—符串 | è¯¥æ ‡ç¾ä¸å¯ç¼ºçœã€‚ | | permissions | æ ‡è¯†å½“å‰ExtensionAbility组件自定义的æƒé™ä¿¡æ¯ã€‚当其他应用访问该ExtensionAbility时,需è¦ç”³è¯·ç›¸åº”çš„æƒé™ä¿¡æ¯ã€‚<br/>ä¸€ä¸ªæ•°ç»„å…ƒç´ ä¸ºä¸€ä¸ªæƒé™å称。通常采用åå‘域åæ ¼å¼ï¼ˆæœ€å¤§255å—节),å–值为[系统预定义的æƒé™](../security/AccessToken/app-permissions.md)。 | å—符串数组 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºç©ºã€‚ | | readPermission | æ ‡è¯†è¯»å–当å‰ExtensionAbility组件数æ®æ‰€éœ€çš„æƒé™ï¼Œå–值为长度ä¸è¶…过255å—节的å—符串。仅当ExtensionAbility组件的type为dataShare时支æŒé…ç½®è¯¥æ ‡ç¾ã€‚ | å—符串 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºç©ºã€‚ | | writePermission | æ ‡è¯†å‘当å‰ExtensionAbility组件写数æ®æ‰€éœ€çš„æƒé™ï¼Œå–值为长度ä¸è¶…过255å—节的å—符串。仅当ExtensionAbility组件的type为dataShare时支æŒé…ç½®è¯¥æ ‡ç¾ã€‚ | å—符串 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºç©ºã€‚ | | uri | æ ‡è¯†å½“å‰ExtensionAbility组件æ供的数æ®URI,å–值为长度ä¸è¶…过255å—节的å—符数组,用åå‘域åçš„æ ¼å¼è¡¨ç¤ºã€‚<br/>**说明:**<br/>è¯¥æ ‡ç¾åœ¨type为dataShare类型的ExtensionAbility时,ä¸å¯ç¼ºçœã€‚ | å—符串 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºç©ºã€‚ | |skills | æ ‡è¯†å½“å‰ExtensionAbility组件能够接收的[Want](../application-models/want-overview.md)的特å¾é›†ã€‚<br/>é…置规则:entry包å¯ä»¥é…置多个具有入å£èƒ½åŠ›çš„skillsæ ‡ç¾ï¼ˆé…置了ohos.want.action.homeå’Œentity.system.home)的ExtensionAbility,其ä¸ç¬¬ä¸€ä¸ªé…置了skillsæ ‡ç¾çš„ExtensionAbilityä¸çš„labelå’Œicon作为æœåŠ¡æˆ–应用的labelå’Œicon。<br/>**说明:**<br/>æœåŠ¡çš„Feature包ä¸èƒ½é…置具有入å£èƒ½åŠ›çš„skillsæ ‡ç¾ã€‚<br/>应用的Feature包å¯ä»¥é…置具有入å£èƒ½åŠ›çš„skillsæ ‡ç¾ã€‚ | 数组 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºç©ºã€‚ | | [metadata](#metadataæ ‡ç¾) | æ ‡è¯†å½“å‰ExtensionAbility组件的元信æ¯ã€‚<br/>**说明:**<br/>è¯¥æ ‡ç¾åœ¨type为form时,ä¸å¯ç¼ºçœï¼Œä¸”å¿…é¡»å˜åœ¨ä¸€ä¸ªname为ohos.extension.form的对象值,其对应的resource值ä¸èƒ½ç¼ºçœï¼Œä¸ºå¡ç‰‡çš„二级资æºå¼•ç”¨ã€‚ | 对象数组 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºç©ºã€‚ | | exported | æ ‡è¯†å½“å‰ExtensionAbility组件是å¦å¯ä»¥è¢«å…¶ä»–应用调用。<br/>- true:表示å¯ä»¥è¢«å…¶ä»–应用调用。<br/>- false:表示ä¸å¯ä»¥è¢«å…¶ä»–åº”ç”¨è°ƒç”¨ï¼ŒåŒ…æ‹¬æ— æ³•è¢«aa工具命令拉起应用。 | 布尔值 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºfalse。 | | extensionProcessMode | æ ‡è¯†å½“å‰ExtensionAbility组件的多进程实例模型,当å‰åªå¯¹UIExtensionAbility以åŠä»ŽUIExtensionAbility扩展的ExtensionAbility生效。<br/>- instance:表示该ExtensionAbilityæ¯ä¸ªå®žä¾‹ä¸€ä¸ªè¿›ç¨‹ã€‚<br/>- type:表示该ExtensionAbility实例都è¿è¡Œåœ¨åŒä¸€ä¸ªè¿›ç¨‹é‡Œï¼Œä¸Žå…¶ä»–ExtensionAbility分离进程。<br/>- bundle:表示该ExtensionAbility实例都è¿è¡Œåœ¨åº”用统一进程里,与其他é…置了bundle模型的ExtensionAbility共进程。<br>- runWithMainProcess:表示该ExtensionAbility和应用主进程共进程,åªæœ‰ä¸€æ¥ç›´è¾¾çš„ExtensionAbilityå¯ä»¥é…ç½®runWithMainProcess。 | å—符串 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºç©ºã€‚ | | dataGroupIds | æ ‡è¯†å½“å‰ExtensionAbility组件的dataGroupId集åˆã€‚如果当å‰ExtensionAbility组件所在的应用在应用市场申请的è¯ä¹¦é‡ŒgroupIds也申请了æŸä¸ªdataGroupId,那么当å‰ExtensionAbility组件å¯ä»¥å’Œåº”用共享这一个dataGroupId生æˆçš„目录,所以ExtensionAbility组件的dataGroupId需è¦æ˜¯åº”用的è¯ä¹¦ä¸groupIdså—段里é…置的æ‰èƒ½ç”Ÿæ•ˆã€‚ 且该å—段仅在当å‰ExtensionAbility组件å˜åœ¨ç‹¬ç«‹çš„沙箱目录时生效。详è§[dataGroupId申请æµç¨‹](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/ime-kit-security-V5#section4219152220459)。 | å—符串数组 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºç©ºã€‚ | | process | æ ‡è¯†ç»„ä»¶çš„è¿›ç¨‹æ ‡ç¾ï¼Œåªæœ‰type为embeddedUIæ—¶å¯ä»¥é…置该å—段。<br/>**说明:**<br/>仅在[2in1](./module-configuration-file.md#devicetypesæ ‡ç¾)设备上生效,UIAbility组件和ExtensionAbilityç»„ä»¶æ ‡ç¾ä¸€è‡´æ—¶è¿è¡Œåœ¨åŒä¸€ä¸ªè¿›ç¨‹ä¸ã€‚ | å—符串 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºç©ºã€‚ | extensionAbilities示例: ```json { "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": [], "permissions": [] }], "metadata": [ { "name": "ohos.extension.form", "resource": "$profile:form_config", } ], "extensionProcessMode": "instance", "dataGroupIds": [ "testGroupId1" ] } ] } ``` ## shortcutsæ ‡ç¾ shortcutsæ ‡è¯†åº”ç”¨çš„å¿«æ·æ–¹å¼ä¿¡æ¯ã€‚æ ‡ç¾å€¼ä¸ºæ•°ç»„,包å«å››ä¸ªåæ ‡ç¾shortcutIdã€labelã€iconã€wants。 metadataä¸æŒ‡å®šshortcutä¿¡æ¯ï¼Œå…¶ä¸ï¼š - name:指定shortcutsçš„å称,使用ohos.ability.shortcuts作为shortcutsä¿¡æ¯çš„æ ‡è¯†ã€‚ - resource:指定shortcutsä¿¡æ¯çš„资æºä½ç½®ã€‚ **表11** shortcutsæ ‡ç¾è¯´æ˜Ž | 属性å称 | å«ä¹‰ | 类型 | 是å¦å¯ç¼ºçœ | | -------- | -------- | -------- | -------- | | shortcutId | æ ‡è¯†å¿«æ·æ–¹å¼çš„ID,å–值为长度ä¸è¶…过63å—节的å—符串。**ä¸æ”¯æŒé€šè¿‡èµ„æºç´¢å¼•çš„æ–¹å¼ï¼ˆ$string)é…置该å—段。** | å—符串 | è¯¥æ ‡ç¾ä¸å¯ç¼ºçœã€‚ | | label | æ ‡è¯†å¿«æ·æ–¹å¼çš„æ ‡ç¾ä¿¡æ¯ï¼Œå³å¿«æ·æ–¹å¼å¯¹å¤–显示的文å—æè¿°ä¿¡æ¯ã€‚å–值为长度ä¸è¶…过255å—节的å—符串,å¯ä»¥æ˜¯æ述性内容,也å¯ä»¥æ˜¯æ ‡è¯†label的资æºç´¢å¼•ã€‚ | å—符串 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºç©ºã€‚ | | icon | æ ‡è¯†å¿«æ·æ–¹å¼çš„å›¾æ ‡ï¼Œå–值为资æºæ–‡ä»¶çš„索引。 | å—符串 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºç©ºã€‚ | | [wants](#wantsæ ‡ç¾) | æ ‡è¯†å¿«æ·æ–¹å¼å†…å®šä¹‰çš„ç›®æ ‡wantsä¿¡æ¯é›†åˆï¼Œåœ¨è°ƒç”¨launcherBundleManagerçš„startShortcut接å£æ—¶ï¼Œä¼šæ‹‰èµ·wantsæ ‡ç¾é‡Œçš„ç¬¬ä¸€ä¸ªç›®æ ‡ç»„ä»¶ï¼ŒæŽ¨èåªé…置一个wantså…ƒç´ ã€‚ | 对象 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœä¸ºç©ºã€‚ | 1. 在/resources/base/profile/目录下é…ç½®shortcuts_config.jsoné…置文件。 ```json { "shortcuts": [ { "shortcutId": "id_test1", "label": "$string:shortcut", "icon": "$media:aa_icon", "wants": [ { "bundleName": "com.ohos.hello", "moduleName": "entry", "abilityName": "EntryAbility", "parameters": { "testKey": "testValue" } } ] } ] } ``` 2. 在module.json5é…置文件的abilitiesæ ‡ç¾ä¸ï¼Œé’ˆå¯¹éœ€è¦æ·»åŠ å¿«æ·æ–¹å¼çš„UIAbility进行é…ç½®metadataæ ‡ç¾ï¼Œä½¿shortcuté…置文件对该UIAbility生效。 ```json { "module": { // ... "abilities": [ { "name": "EntryAbility", "srcEntry": "./ets/entryability/EntryAbility.ets", // ... "skills": [ { "entities": [ "entity.system.home" ], "actions": [ "ohos.want.action.home" ] } ], "metadata": [ { "name": "ohos.ability.shortcuts", "resource": "$profile:shortcuts_config" } ] } ] } } ``` ### wantsæ ‡ç¾ æ¤æ ‡ç¾ç”¨äºŽæ ‡è¯†å¿«æ·æ–¹å¼å†…å®šä¹‰çš„ç›®æ ‡wantsä¿¡æ¯é›†åˆã€‚ **表11-1** wantsæ ‡ç¾è¯´æ˜Ž | 属性å称 | å«ä¹‰ | 类型 | 是å¦å¯ç¼ºçœ | | -------- | -------- | -------- | -------- | | bundleName | 表示快æ·æ–¹å¼çš„ç›®æ ‡åŒ…å。 | å—符串 | è¯¥æ ‡ç¾ä¸å¯ç¼ºçœã€‚ | | moduleName | 表示快æ·æ–¹å¼çš„ç›®æ ‡æ¨¡å—å。 | å—符串 | è¯¥æ ‡ç¾å¯ç¼ºçœã€‚ | | abilityName| 表示快æ·æ–¹å¼çš„ç›®æ ‡ç»„ä»¶å。 | å—符串 | è¯¥æ ‡ç¾ä¸å¯ç¼ºçœã€‚ | | parameters | 表示拉起快æ·æ–¹å¼æ—¶çš„自定义数æ®ï¼Œä»…支æŒé…ç½®å—符串类型的数æ®ã€‚å…¶ä¸é”®å€¼å‡æœ€å¤§æ”¯æŒ1024长度的å—符串。 | 对象 | è¯¥æ ‡ç¾å¯ç¼ºçœã€‚ | dataæ ‡ç¾ç¤ºä¾‹ï¼š ```json { "wants": [ { "bundleName": "com.ohos.hello", "moduleName": "entry", "abilityName": "EntryAbility", "parameters": { "testKey": "testValue" } } ] } ``` ## distributionFilteræ ‡ç¾ è¯¥æ ‡ç¾ç”¨äºŽå®šä¹‰HAPå¯¹åº”çš„ç»†åˆ†è®¾å¤‡è§„æ ¼çš„åˆ†å‘ç–略,以便在应用市场进行云端分å‘应用包时åšç²¾å‡†åŒ¹é…。 > **说明:** > è¯¥æ ‡ç¾ä»ŽAPI10åŠä»¥åŽç‰ˆæœ¬å¼€å§‹ç”Ÿæ•ˆï¼ŒAPI9åŠä»¥å‰ç‰ˆæœ¬ä½¿ç”¨distroFilteræ ‡ç¾ã€‚ - **适用场景:** 当一个工程ä¸å˜åœ¨å¤šä¸ªEntry,且多个Entryé…置的deviceTypeså˜åœ¨äº¤é›†æ—¶ï¼Œåˆ™éœ€è¦é€šè¿‡è¯¥æ ‡ç¾è¿›è¡ŒåŒºåˆ†ã€‚比如下é¢çš„两个Entry都支æŒtablet类型,就需è¦é€šè¿‡è¯¥æ ‡ç¾è¿›è¡ŒåŒºåˆ†ã€‚ ```json // entry1支æŒçš„设备类型 { "module": { "name": "entry1", "type": "entry", "deviceTypes" : [ "tv", "tablet" ] } } ``` ```json // entry2支æŒçš„设备类型 { "module": { "name": "entry2", "type": "entry", "deviceTypes" : [ "car", "tablet" ] } } ``` - **é…置规则:** è¯¥æ ‡ç¾æ”¯æŒé…置四个属性,包括å±å¹•å½¢çŠ¶([screenShape](#screenshapeæ ‡ç¾))ã€çª—å£åˆ†è¾¨çŽ‡([screenWindow](#screenwindowæ ‡ç¾))ã€å±å¹•åƒç´ 密度([screenDensity](#screendensityæ ‡ç¾) )ã€è®¾å¤‡æ‰€åœ¨å›½å®¶ä¸Žåœ°åŒº([countryCode](#countrycodeæ ‡ç¾)),详è§ä¸‹è¡¨ã€‚ 在分å‘应用包时,通过deviceTypes与这四个属性的匹é…关系,唯一确定一个用于分å‘到设备的HAP。 * 如果需è¦é…ç½®è¯¥æ ‡ç¾ï¼Œåˆ™è‡³å°‘包å«ä¸€ä¸ªå±žæ€§ã€‚ * 如果一个Entryä¸é…置了任æ„一个或多个属性,则其他Entry也必须包å«ç›¸åŒçš„属性。 * screenShapeå’ŒscreenWindow属性仅用于轻é‡çº§æ™ºèƒ½ç©¿æˆ´è®¾å¤‡ã€‚ - **é…置方å¼ï¼š** è¯¥æ ‡ç¾éœ€è¦é…置在/resources/base/profile资æºç›®å½•ä¸‹ï¼Œå¹¶åœ¨metadataçš„resourceå—段ä¸å¼•ç”¨ã€‚ **表12** distributionFilteræ ‡ç¾é…置说明 | 属性å称 | å«ä¹‰ | æ•°æ®ç±»åž‹ | 是å¦å¯ç¼ºçœ | | -------- | -------- | -------- | -------- | | [screenShape](#screenshapeæ ‡ç¾) | æ ‡è¯†å±å¹•å½¢çŠ¶çš„支æŒç–略。 | 对象数组 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºç©ºã€‚ | | [screenWindow](#screenwindowæ ‡ç¾) | æ ‡è¯†åº”ç”¨è¿è¡Œæ—¶çš„窗å£åˆ†è¾¨çŽ‡çš„支æŒç–略。| 对象数组 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºç©ºã€‚ | | [screenDensity](#screendensityæ ‡ç¾) | æ ‡è¯†å±å¹•çš„åƒç´ 密度(dpi:Dot Per Inch)的支æŒç–略。 | 对象数组 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºç©ºã€‚ | | [countryCode](#countrycodeæ ‡ç¾) | æ ‡è¯†å›½å®¶ä¸Žåœ°åŒºçš„æ”¯æŒç–略,å–值å‚考ISO-3166-1æ ‡å‡†ã€‚æ”¯æŒå¤šä¸ªå›½å®¶å’Œåœ°åŒºæžšä¸¾å®šä¹‰ã€‚ | 对象数组 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºç©ºã€‚ | ### screenShapeæ ‡ç¾ **表13** screenShapeæ ‡ç¾è¯´æ˜Ž | 属性å称 | å«ä¹‰ | æ•°æ®ç±»åž‹ | 是å¦å¯ç¼ºçœ | | -------- | -------- | -------- | -------- | | policy | æ ‡è¯†æ¡ä»¶å±žæ€§çš„过滤规则。<br/>- exclude:表示需è¦æŽ’除的value属性。<br/>- include:表示需è¦åŒ…å«çš„value属性。 | å—符串 | è¯¥æ ‡ç¾ä¸å¯ç¼ºçœã€‚ | | value | 支æŒçš„å–值为circle(圆形)ã€rect(矩形)。例如,针对智能穿戴设备,å¯ä¸ºåœ†å½¢è¡¨ç›˜å’ŒçŸ©å½¢è¡¨ç›˜åˆ†åˆ«æä¾›ä¸åŒçš„HAP。 | å—符串数组 | è¯¥æ ‡ç¾ä¸å¯ç¼ºçœã€‚ | ### screenWindowæ ‡ç¾ **表14** screenWindowæ ‡ç¾è¯´æ˜Ž | 属性å称 | å«ä¹‰ | æ•°æ®ç±»åž‹ | 是å¦å¯ç¼ºçœ | | -------- | -------- | -------- | -------- | | policy | æ ‡è¯†æ¡ä»¶å±žæ€§çš„过滤规则。当å‰å–值仅支æŒâ€œincludeâ€ã€‚<br/>- include:表示需è¦åŒ…å«çš„value属性。 | å—符串 | è¯¥æ ‡ç¾ä¸å¯ç¼ºçœã€‚ | | value | å•ä¸ªå—符串的å–å€¼æ ¼å¼ä¸ºâ€œå®½ \* 高â€ï¼Œå–值为整数åƒç´ 值,例如“454 \* 454â€ã€‚ | å—符串数组 | è¯¥æ ‡ç¾ä¸å¯ç¼ºçœã€‚ | ### screenDensityæ ‡ç¾ **表15** screenDensityæ ‡ç¾è¯´æ˜Ž | 属性å称 | å«ä¹‰ | æ•°æ®ç±»åž‹ | 是å¦å¯ç¼ºçœ | | -------- | -------- | -------- | -------- | | policy | æ ‡è¯†æ¡ä»¶å±žæ€§çš„过滤规则。<br/>- exclude:表示需è¦æŽ’除的value属性。<br/>- include:表示需è¦åŒ…å«çš„value属性。 | å—符串 | è¯¥æ ‡ç¾ä¸å¯ç¼ºçœã€‚ | | value | æ ‡è¯†å±å¹•çš„åƒç´ 密度(dpi :Dot Per Inch)。支æŒçš„å–值如下:<br/>- sdpi:表示å°è§„模的å±å¹•å¯†åº¦ï¼ˆSmall-scale Dots per Inch),适用于dpiå–值为(0,120]的设备。<br/>- mdpi:表示ä¸è§„模的å±å¹•å¯†åº¦ï¼ˆMedium-scale Dots Per Inch),适用于dpiå–值为(120,160]的设备。<br/>- ldpi:表示大规模的å±å¹•å¯†åº¦ï¼ˆLarge-scale Dots Per Inch),适用于dpiå–值为(160,240]的设备。<br/>- xldpi:表示大规模的å±å¹•å¯†åº¦ï¼ˆExtra Large-scale Dots Per Inch),适用于dpiå–值为(240,320]的设备。<br/>- xxldpi:表示大规模的å±å¹•å¯†åº¦ï¼ˆExtra Extra Large-scale Dots Per Inch),适用于dpiå–值为(320,480]的设备。<br/>- xxxldpi:表示大规模的å±å¹•å¯†åº¦ï¼ˆExtra Extra Extra Large-scale Dots Per Inch),适用于dpiå–值为(480, 640]的设备。 | å—符串数组 | è¯¥æ ‡ç¾ä¸å¯ç¼ºçœã€‚ | ### countryCodeæ ‡ç¾ **表16** countryCodeæ ‡ç¾è¯´æ˜Ž | 属性å称 | å«ä¹‰ | æ•°æ®ç±»åž‹ | 是å¦å¯ç¼ºçœ | | -------- | -------- | -------- | -------- | | policy | æ ‡è¯†æ¡ä»¶å±žæ€§çš„过滤规则。<br/>- exclude:表示需è¦æŽ’除的value属性。<br/>- include:表示需è¦åŒ…å«çš„value属性。 | å—符串 | è¯¥æ ‡ç¾ä¸å¯ç¼ºçœã€‚ | | value | æ ‡è¯†åº”ç”¨éœ€è¦åˆ†å‘的国家地区ç 。 | å—符串数组 | è¯¥æ ‡ç¾ä¸å¯ç¼ºçœã€‚ | 示例如下: 1. 在开å‘视图的resources/base/profile下é¢å®šä¹‰é…置文件distributionFilter_config.json,文件åå¯ä»¥è‡ªå®šä¹‰ã€‚ ```json { "distributionFilter": { "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" ] } } } ``` 2. 在module.json5é…置文件的moduleæ ‡ç¾ä¸å®šä¹‰metadataä¿¡æ¯ã€‚ ```json { "module": { // ... "metadata": [ { "name": "ohos.module.distribution", "resource": "$profile:distributionFilter_config", } ] } } ``` ## testRunneræ ‡ç¾ æ¤æ ‡ç¾ç”¨äºŽæ”¯æŒå¯¹æµ‹è¯•æ¡†æž¶çš„é…置。 **表17** testRunneræ ‡ç¾è¯´æ˜Ž | 属性å称 | å«ä¹‰ | æ•°æ®ç±»åž‹ | 是å¦å¯ç¼ºçœ | | -------- | -------- | -------- | -------- | | name | æ ‡è¯†æµ‹è¯•æ¡†æž¶å¯¹è±¡å称,å–值为长度ä¸è¶…过255å—节的å—符串。 | å—符串 | ä¸å¯ç¼ºçœã€‚ | | srcPath | æ ‡è¯†æµ‹è¯•æ¡†æž¶ä»£ç 路径,å–值为长度ä¸è¶…过255å—节的å—符串。 | å—符串 | ä¸å¯ç¼ºçœã€‚ | testRunneræ ‡ç¾ç¤ºä¾‹ï¼š ```json { "module": { // ... "testRunner": { "name": "myTestRunnerName", "srcPath": "etc/test/TestRunner.ts" } } } ``` ## atomicServiceæ ‡ç¾ æ¤æ ‡ç¾ç”¨äºŽæ”¯æŒå¯¹åŽŸå化æœåŠ¡çš„é…置。æ¤æ ‡ç¾ä»…在app.jsonä¸bundleType指定为atomicService时使能。 **表18** atomicServiceæ ‡ç¾è¯´æ˜Ž | 属性å称 | å«ä¹‰ | æ•°æ®ç±»åž‹ | 是å¦å¯ç¼ºçœ | | -------- | -------- | -------- | -------- | | preloads | æ ‡è¯†åŽŸå化æœåŠ¡ä¸é¢„åŠ è½½åˆ—è¡¨ã€‚ | 对象数组 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºç©ºã€‚ | **表19** preloadsæ ‡ç¾è¯´æ˜Ž | 属性å称 | å«ä¹‰ | æ•°æ®ç±»åž‹ | 是å¦å¯ç¼ºçœ | | -------- | -------- | -------- | -------- | | moduleName | æ ‡è¯†åŽŸå化æœåŠ¡ä¸å½“å‰æ¨¡å—è¢«åŠ è½½æ—¶ï¼Œéœ€é¢„åŠ è½½çš„æ¨¡å—å。ä¸èƒ½é…置自身modulename,且必须有对应的模å—,å–值为长度ä¸è¶…过31å—节的å—符串。 | å—符串 | è¯¥æ ‡ç¾ä¸å¯ç¼ºçœã€‚ | atomicServiceæ ‡ç¾ç¤ºä¾‹ï¼š ```json { "module": { "atomicService": { "preloads":[ { "moduleName":"feature" } ] } } } ``` ## dependenciesæ ‡ç¾ æ¤æ ‡ç¾æ ‡è¯†æ¨¡å—è¿è¡Œæ—¶ä¾èµ–的共享库列表。 **表20** dependenciesæ ‡ç¾è¯´æ˜Ž | 属性å称 | å«ä¹‰ | æ•°æ®ç±»åž‹ | 是å¦å¯ç¼ºçœ | | ----------- | ------------------------------ | -------- | ---------- | | bundleName | æ ‡è¯†å½“å‰æ¨¡å—ä¾èµ–的共享包包å。å–值为长度7~128å—节的å—符串。 | å—符串 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºç©ºã€‚ | | moduleName | æ ‡è¯†å½“å‰æ¨¡å—ä¾èµ–的共享包模å—å。å–值为长度ä¸è¶…过31å—节的å—符串。 | å—符串 | è¯¥æ ‡ç¾ä¸å¯ç¼ºçœã€‚ | | versionCode | æ ‡è¯†å½“å‰å…±äº«åŒ…的版本å·ã€‚å–值范围为0~2147483647。 | 数值 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºç©ºã€‚ | dependenciesæ ‡ç¾ç¤ºä¾‹ï¼š ```json { "module": { "dependencies": [ { "bundleName":"com.share.library", "moduleName": "library", "versionCode": 10001 } ] } } ``` ## proxyDataæ ‡ç¾ æ¤æ ‡ç¾æ ‡è¯†æ¨¡å—æ供的数æ®ä»£ç†åˆ—表,仅é™entryå’Œfeatureé…置。 **表21** proxyDataæ ‡ç¾è¯´æ˜Ž | 属性å称 | å«ä¹‰ | æ•°æ®ç±»åž‹ | 是å¦å¯ç¼ºçœ | | ----------- | ------------------------------ | -------- | ---------- | | uri | æ ‡è¯†ç”¨äºŽè®¿é—®è¯¥æ•°æ®ä»£ç†çš„URI,ä¸åŒçš„æ•°æ®ä»£ç†é…置的URIä¸å¯é‡å¤ï¼Œä¸”需è¦æ»¡è¶³`datashareproxy://当å‰åº”用包å/xxx`çš„æ ¼å¼ã€‚å–值为长度ä¸è¶…过255å—节的å—符串。 | å—符串 | è¯¥æ ‡ç¾ä¸å¯ç¼ºçœã€‚ | | requiredReadPermission | æ ‡è¯†ä»Žè¯¥æ•°æ®ä»£ç†ä¸è¯»å–æ•°æ®æ‰€éœ€è¦çš„æƒé™ï¼Œè‹¥ä¸é…ç½®ï¼Œåˆ™å…¶ä»–åº”ç”¨æ— æ³•ä½¿ç”¨è¯¥ä»£ç†ã€‚éžç³»ç»Ÿåº”用é…置的æƒé™çš„ç‰çº§éœ€ä¸ºsystem_basic或system_core,系统应用é…置的æƒé™çš„ç‰çº§æ²¡æœ‰é™åˆ¶ã€‚æƒé™ç‰çº§å¯ä»¥å‚考[æƒé™åˆ—表](../security/AccessToken/app-permissions.md)。å–值为长度ä¸è¶…过255å—节的å—符串。 | å—符串 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºç©ºã€‚ | | requiredWritePermission | æ ‡è¯†å‘该数æ®ä»£ç†ä¸å†™å…¥æ•°æ®æ‰€éœ€è¦çš„æƒé™ï¼Œè‹¥ä¸é…ç½®ï¼Œåˆ™å…¶ä»–åº”ç”¨æ— æ³•ä½¿ç”¨è¯¥ä»£ç†ã€‚éžç³»ç»Ÿåº”用é…置的æƒé™çš„ç‰çº§éœ€ä¸ºsystem_basic或system_core,系统应用é…置的æƒé™çš„ç‰çº§æ²¡æœ‰é™åˆ¶ã€‚æƒé™ç‰çº§å¯ä»¥å‚考[æƒé™åˆ—表](../security/AccessToken/app-permissions.md)。å–值为长度ä¸è¶…过255å—节的å—符串。 | å—符串 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºç©ºã€‚ | | [metadata](#metadataæ ‡ç¾) | æ ‡è¯†è¯¥æ•°æ®ä»£ç†çš„元信æ¯ï¼Œåªæ”¯æŒé…ç½®nameå’Œresourceå—段。 | 对象 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºç©ºã€‚ | proxyDataæ ‡ç¾ç¤ºä¾‹ï¼š ```json { "module": { "proxyData": [ { "uri":"datashareproxy://com.ohos.datashare/event/Meeting", "requiredReadPermission": "ohos.permission.GET_BUNDLE_INFO", "requiredWritePermission": "ohos.permission.GET_BUNDLE_INFO", "metadata": { "name": "datashare_metadata", "resource": "$profile:datashare" } } ] } } ``` ## routerMapæ ‡ç¾ æ¤æ ‡ç¾æ ‡è¯†æ¨¡å—é…置的路由表的路径。 routerMapé…置文件æ述模å—的路由表信æ¯ï¼ŒrouterMapæ ‡ç¾å€¼ä¸ºæ•°ç»„类型。 **表22** routerMapæ ‡ç¾è¯´æ˜Ž | 属性å称 | å«ä¹‰ | æ•°æ®ç±»åž‹ | 是å¦å¯ç¼ºçœ | | -------- | -------- | -------- | -------- | | name | æ ‡è¯†è·³è½¬é¡µé¢çš„å称。å–值为长度ä¸è¶…过1023å—节的å—符串。 | å—符串 | è¯¥æ ‡ç¾ä¸å¯ç¼ºçœã€‚ | | pageSourceFile| æ ‡è¯†é¡µé¢åœ¨æ¨¡å—内的路径。å–值为长度ä¸è¶…过255å—节的å—符串。 | å—符串 | è¯¥æ ‡ç¾ä¸å¯ç¼ºçœã€‚ | | buildFunction | æ ‡è¯†è¢«@Builder修饰的函数,该函数æ述页é¢çš„UI。å–值为长度ä¸è¶…过1023å—节的å—符串。 | å—符串 | è¯¥æ ‡ç¾ä¸å¯ç¼ºçœã€‚ | | [data](#dataæ ‡ç¾) | æ ‡è¯†å—符串类型的自定义数æ®ã€‚ æ¯ä¸ªè‡ªå®šä¹‰æ•°æ®å—符串å–值ä¸è¶…过128å—节。 | 对象 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºç©ºã€‚ | | [customData](#customdataæ ‡ç¾) | æ ‡è¯†ä»»æ„类型的自定义数æ®ï¼Œæ€»é•¿åº¦ä¸è¶…过4096å—节。 | 对象 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºç©ºã€‚ | 示例如下: 1. 在开å‘视图的resources/base/profile下é¢å®šä¹‰é…置文件,文件åå¯ä»¥è‡ªå®šä¹‰ï¼Œä¾‹å¦‚:router_map.json。 ```json { "routerMap": [ { "name": "DynamicPage1", "pageSourceFile": "src/main/ets/pages/pageOne.ets", "buildFunction": "myFunction", "customData": { "stringKey": "data1", "numberKey": 123, "booleanKey": true, "objectKey": { "name": "test" }, "arrayKey": [ { "id": 123 } ] } }, { "name": "DynamicPage2", "pageSourceFile": "src/main/ets/pages/pageTwo.ets", "buildFunction": "myBuilder", "data": { "key1": "data1", "key2": "data2" } } ] } ``` 2. 在module.json5é…置文件的moduleæ ‡ç¾ä¸å®šä¹‰`routerMap`å—段,指å‘定义的路由表é…置文件,例如:`"routerMap": "$profile:router_map"`。 ### dataæ ‡ç¾ æ¤æ ‡ç¾ç”¨äºŽæ”¯æŒåœ¨è·¯ç”±è¡¨ä¸é…置自定义的å—符串数æ®ã€‚ dataæ ‡ç¾ç¤ºä¾‹ï¼š ```json { "routerMap": [ { "name": "DynamicPage", "pageSourceFile": "src/main/ets/pages/pageOne.ets", "buildFunction": "myBuilder", "data": { "key1": "data1", "key2": "data2" } } ] } ``` ### customDataæ ‡ç¾ æ¤æ ‡ç¾ç”¨äºŽæ”¯æŒåœ¨è·¯ç”±è¡¨ä¸é…置自定义数æ®ã€‚ customData对象内部,å¯ä»¥å¡«å…¥ä»»æ„类型的自定义数æ®ã€‚ customDataæ ‡ç¾ç¤ºä¾‹ï¼š ```json { "routerMap": [ { "name": "DynamicPage", "pageSourceFile": "src/main/ets/pages/pageOne.ets", "buildFunction": "myBuilder", "customData": { "stringKey": "data1", "numberKey": 123, "booleanKey": true, "objectKey": { "name": "test" }, "arrayKey": [ { "id": 123 } ] } } ] } ``` ## appEnvironmentsæ ‡ç¾ æ¤æ ‡ç¾æ ‡è¯†æ¨¡å—é…置的应用环境å˜é‡ã€‚ **表23** appEnvironmentsæ ‡ç¾è¯´æ˜Ž | 属性å称 | å«ä¹‰ | æ•°æ®ç±»åž‹ | 是å¦å¯ç¼ºçœ | | -------- | -------- | -------- | -------- | | name | æ ‡è¯†çŽ¯å¢ƒå˜é‡çš„å˜é‡å称。å–值为长度ä¸è¶…过4096å—节的å—符串。 | å—符串 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºç©ºã€‚ | | value | æ ‡è¯†çŽ¯å¢ƒå˜é‡çš„值。å–值为长度ä¸è¶…过4096å—节的å—符串。 | å—符串 | è¯¥æ ‡ç¾å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºç©ºã€‚ | appEnvironmentsæ ‡ç¾ç¤ºä¾‹ï¼š ```json { "module": { "appEnvironments": [ { "name":"name1", "value": "value1" } ] } } ``` ## definePermissionsæ ‡ç¾ è¯¥æ ‡ç¾ä»…支æŒç³»ç»Ÿèµ„æºhap定义æƒé™ï¼Œä¸æ”¯æŒåº”用自定义æƒé™ã€‚æƒé™å®šä¹‰æ–¹å¼å‚è§[系统资æºæƒé™å®šä¹‰](https://gitee.com/openharmony/utils_system_resources/blob/master/systemres/main/config.json)。 **表24** definePermissionsæ ‡ç¾è¯´æ˜Ž | 属性å称 | å«ä¹‰ | æ•°æ®ç±»åž‹ | 是å¦å¯ç¼ºçœ | | -------- | -------- | -------- | -------- | | name | æ ‡è¯†æƒé™çš„åç§°ï¼Œè¯¥æ ‡ç¾æœ€å¤§é•¿åº¦ä¸º255å—节。 | å—符串 | ä¸å¯ç¼ºçœã€‚ | | grantMode | æ ‡è¯†æƒé™çš„授予方å¼ï¼Œæ”¯æŒå¦‚下两ç§æŽˆäºˆæ¨¡å¼å¦‚下:<br/>- system_grant:安装åŽç³»ç»Ÿè‡ªåŠ¨æŽˆäºˆè¯¥æƒé™ã€‚<br/>- user_grant:使用时动æ€ç”³è¯·ï¼Œç”¨æˆ·æŽˆæƒåŽæ‰å¯ä½¿ç”¨ã€‚ | å—符串 | å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºsystem_grant。 | | availableLevel | æ ‡è¯†æƒé™é™åˆ¶ç±»åˆ«ï¼Œå¯é€‰å€¼å¦‚下:<br/>- system_coreï¼šç³»ç»Ÿæ ¸å¿ƒæƒé™ã€‚<br/>- system_basic:系统基础æƒé™ã€‚<br/>- normal:普通æƒé™ã€‚所有应用å…许申请的æƒé™ã€‚ | å—符串 | å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºnormal。 | | provisionEnable | æ ‡è¯†æƒé™æ˜¯å¦æ”¯æŒè¯ä¹¦æ–¹å¼ç”³è¯·æƒé™ï¼ŒåŒ…括高级别的æƒé™ã€‚é…置为trueæ ‡è¯†å¼€å‘者å¯ä»¥é€šè¿‡provisionæ–¹å¼ç”³è¯·æƒé™ã€‚ | 布尔值 | å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºtrue。 | | distributedSceneEnabled | æ ‡è¯†æƒé™æ˜¯å¦æ”¯æŒåˆ†å¸ƒå¼åœºæ™¯ä¸‹ä½¿ç”¨è¯¥æƒé™ã€‚ | 布尔值 | å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºfalse。 | | label | æ ‡è¯†æƒé™çš„简çŸæ述,é…置为对æ述内容的资æºç´¢å¼•ã€‚ | å—符串 | å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºç©ºã€‚ | | description | æ ‡è¯†æƒé™çš„详细æ述,å¯ä»¥æ˜¯å—符串,或者是对æ述内容的资æºç´¢å¼•ã€‚ | å—符串 | å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºç©ºã€‚ | definePermissionsæ ‡ç¾ç¤ºä¾‹ï¼š ```json { "module" : { "definePermissions": [ { "name": "ohos.abilitydemo.permission.PROVIDER", "grantMode": "system_grant", "availableLevel": "system_core", "provisionEnable": true, "distributedSceneEnable": false, "label": "$string:EntryAbility_label" } ] } } ``` ## hnpPackagesæ ‡ç¾ è¯¥æ ‡ç¾æ ‡è¯†åº”用包å«çš„Native软件包信æ¯ã€‚ **表25** hnpPackagesæ ‡ç¾è¯´æ˜Ž | 属性å称 | å«ä¹‰ | æ•°æ®ç±»åž‹ | 是å¦å¯ç¼ºçœ | | -------- | -------- | -------- | -------- | | package | æ ‡è¯†Native软件包å称。 | å—符串 | è¯¥æ ‡ç¾ä¸å¯ç¼ºçœã€‚ | | type | æ ‡è¯†Native软件包类型。支æŒçš„å–值如下:<br/>- public:公有类型。<br/>- private:ç§æœ‰ç±»åž‹ã€‚ | å—符串 | è¯¥æ ‡ç¾ä¸å¯ç¼ºçœã€‚ | hnpPackages示例: ```json { "module" : { "hnpPackages": [ { "package": "hnpsample.hnp", "type": "public" } ] } } ``` ## fileContextMenuæ ‡ç¾ è¯¥æ ‡ç¾ç”¨æ¥æ ‡è¯†å½“å‰HAPçš„å³é”®èœå•é…置项,是一个profile文件资æºï¼Œç”¨äºŽæŒ‡å®šæ述应用注册å³é”®èœå•é…置文件。 fileContextMenuæ ‡ç¾ç¤ºä¾‹ ```json { "module": { // ... "fileContextMenu": "$profile:menu" // 通过profile下的资æºæ–‡ä»¶é…ç½® } } ``` 在开å‘视图的resources/base/profile下é¢å®šä¹‰é…置文件menu.json,其ä¸æ–‡ä»¶å“menu.jsonâ€å¯è‡ªå®šä¹‰ï¼Œéœ€è¦å’ŒfileContextMenuæ ‡ç¾æŒ‡å®šçš„ä¿¡æ¯å¯¹åº”。é…置文件ä¸æ述了当å‰åº”用注册的å³é”®èœå•çš„项目和å“应行为。 é…ç½®æ–‡ä»¶æ ¹èŠ‚ç‚¹å称为fileContextMenuï¼Œä¸ºå¯¹è±¡æ•°ç»„ï¼Œæ ‡è¯†å½“å‰module注册å³é”®èœå•çš„æ•°é‡ã€‚(å•æ¨¡å—å’Œå•åº”用注册数é‡ä¸èƒ½è¶…过5个,é…置超过数é‡å½“å‰åªè§£æžéšæœº5个) **表26** fileContextMenuæ ‡ç¾é…置说明 | 属性å称 | å«ä¹‰ | æ•°æ®ç±»åž‹ | 是å¦å¯ç¼ºçœ | | -------- | -------- | -------- | -------- | | abilityName | 表示当å‰å³é”®èœå•å¯¹åº”的需è¦æ‹‰èµ·çš„abilityå称。 | å—符串 | ä¸å¯ç¼ºçœ | | menuItem | å³é”®èœå•æ˜¾ç¤ºçš„ä¿¡æ¯ã€‚ | 资æºid | ä¸å¯ç¼ºçœ | | menuHandler | 一个abilityå¯ä»¥åˆ›å»ºå¤šä¸ªå³é”®èœå•ï¼Œ 用该å—段æ¥åŒºåˆ†ç”¨æˆ·æ‹‰èµ·çš„ä¸åŒå³é”®èœå•é¡¹ã€‚该å—段在用户点击å³é”®èœå•æ‰§è¡Œæ—¶ï¼Œä¼šä½œä¸ºå‚æ•°ä¼ é€’ç»™å³é”®èœå•åº”用。 | å—符串 | ä¸å¯ç¼ºçœ | | menuContext | 定义展示该èœå•é¡¹éœ€è¦çš„上下文,å¯ä»¥æ”¯æŒå¤šç§æƒ…况,类型为数组。 | 对象数组 | ä¸å¯ç¼ºçœ | **表27** menuContextæ ‡ç¾é…置说明 | 属性å称 | å«ä¹‰ | æ•°æ®ç±»åž‹ | 是å¦å¯ç¼ºçœ | | -------- | -------- | -------- | -------- | | menuKind | 表示å•å‡»å¦‚下类型时会触å‘å³é”®èœå•ã€‚å–值范围如下:<br/>- 0:空白处<br/>- 1:文件<br/>- 2:文件夹<br/>- 3:文件和文件夹 | 数值 | ä¸å¯ç¼ºçœ | | menuRule | 表示采用什么方å¼é€‰æ‹©æ–‡ä»¶æˆ–文件夹时,会触å‘å³é”®èœå•ã€‚å–值范围如下:<br/>- single:å•é€‰<br/>- multi:多选<br/>- both:å•é€‰æˆ–多选 | å—符串 | 仅当menuKind为1或2时,æ‰ä¼šè¯»å–该å—段,æ¤æ—¶ä¸å¯ç¼ºçœã€‚ | | fileSupportType | 表示当选ä¸çš„文件列表里包å«æŒ‡å®šçš„文件类型时,显示å³é”®èœå•ã€‚<br/>当该å—段å–值为["*"]时,将会读å–fileNotSupportTypeå—段。<br/>当该å—段å–值为[]时,将ä¸åšä»»ä½•å¤„ç†ã€‚ | å—符串数组 | 仅当menuKind为1时,æ‰ä¼šè¯»å–该å—段,æ¤æ—¶ä¸å¯ç¼ºçœã€‚ | | fileNotSupportType | 表示当选ä¸çš„文件列表里包å«è¿™äº›æ–‡ä»¶ç±»åž‹æ—¶ï¼Œä¸æ˜¾ç¤ºè¯¥å³é”®èœå•ã€‚<br/>仅当menuKind为1ã€ä¸”fileSupportType为["*"]时,æ‰ä¼šè¯»å–该å—段。 | å—符串数组 | å¯ç¼ºçœï¼Œç¼ºçœå€¼ä¸ºç©ºã€‚ | resources/base/profile路径下的menu.json资æºæ–‡ä»¶ç¤ºä¾‹å¦‚下: ```json { "fileContextMenu": [ { "abilityName": "EntryAbility", "menuItem": "$string:module_desc", "menuHandler": "openCompress", "menuContext": [ { "menuKind": 0 }, { "menuKind": 1, "menuRule": "both", "fileSupportType": [ ".rar", ".zip" ], "fileNotSupportType": [ "" ] }, { "menuKind": 2, "menuRule": "single" }, { "menuKind": 3 } ] } ] } ``` **å“应行为** 应用进行å³é”®æ‰©å±•èœå•æ³¨å†ŒåŽï¼Œåœ¨æ–‡ä»¶ç®¡ç†å™¨é€šè¿‡å³é”®æ“作拉起èœå•ï¼Œè¯¥èœå•ä¸ä¼šæœ‰â€œæ›´å¤šâ€é€‰é¡¹ã€‚点击“更多â€é€‰é¡¹åŽï¼Œä¼šå‡ºçŽ°æ³¨å†ŒåŽçš„menuItem列表,点击任æ„一个选项åŽï¼Œæ–‡ä»¶ç®¡ç†å™¨é»˜è®¤é€šè¿‡startAbilityçš„æ–¹å¼æ‹‰èµ·ä¸‰æ–¹åº”用,除了指定三方应用的包åå’Œabilityå之外,wantä¸çš„parameterä¸ï¼Œä¹Ÿä¼šä¼ 入如下å—段: **表28** wantä¸parameterå—段说明 | å‚æ•°å | 值 | 类型 | | -------- | -------- | -------- | | menuHandler | 对应注册é…置文件ä¸menuHandler的值。 | å—符串 | | uriList | 用户在具体文件上触å‘å³é”®çš„uri值,如果空白处å“应,æ¤å€¼ä¸ºç©ºï¼Œå•ä¸ªæ–‡ä»¶å“应,数组长度1,多个文件å“åº”åˆ™ä¼ å…¥å¯¹åº”æ‰€æœ‰æ–‡ä»¶çš„uri值。 | å—符串数组 |