HarmonyOS NEXT - module.json5配置文件(二)

skills标签

该标签标识UIAbility组件或者ExtensionAbility组件能够接收的Want的特征。
 

表7 skills标签说明

属性名称含义数据类型是否可缺省
actions标识能够接收的Action值集合,取值通常为系统预定义的action值,也允许自定义。字符串数组该标签可缺省,缺省值为空。
entities标识能够接收的Entity值的集合。字符串数组该标签可缺省,缺省值为空。
uris标识与Want中URI(Uniform Resource Identifier)相匹配的集合。对象数组该标签可缺省,缺省值为空。

表8 uris标签说明

属性名称含义数据类型是否可缺省
scheme标识URI的协议名部分,常见的有http、https、file、ftp等。字符串uris中仅配置type时可以缺省,缺省值为空,否则不可缺省。
host

标识URI的主机地址部分,该字段在scheme存在时才有意义。常见的方式:

- 域名方式,如example.com。

- 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)类型规范。可与scheme同时配置,也可以单独配置。字符串该标签可缺省,缺省值为空。
utd标识与Want相匹配的标准化数据类型,适用于分享等场景。字符串该标签可缺省,缺省值为空。
maxFileSupported对于指定类型的文件,标识一次能接收或打开的最大数量,适用于分享等场景,需要与utd配合使用。整数该标签可缺省,缺省值为0。

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标签

描述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组件的类型,支持的取值如下:

- form:卡片的ExtensionAbility。

- workScheduler:延时任务的ExtensionAbility。

- inputMethod:输入法的ExtensionAbility。

- service:后台运行的service组件。

- accessibility:辅助能力的ExtensionAbility。

- fileAccess:公共数据访问的ExtensionAbility,允许应用程序提供文件和文件夹给文件管理类应用展示。

- dataShare:数据共享的ExtensionAbility。

- staticSubscriber:静态广播的ExtensionAbility。

- wallpaper:壁纸的ExtensionAbility。

- backup:数据备份的ExtensionAbility。

- window:该ExtensionAbility会在启动过程中创建一个window,为开发者提供界面开发。开发者开发出来的界面将通过UIExtensionComponent控件组合到其他应用的窗口中。

- thumbnail:获取文件缩略图的ExtensionAbility,开发者可以对自定义文件类型的文件提供缩略。

- preview:该ExtensionAbility会将文件解析后在一个窗口中显示,开发者可以通过将此窗口组合到其他应用窗口中。

- print:打印框架的ExtensionAbility。

- push:推送的ExtensionAbility。

- driver:驱动框架的ExtensionAbility。

- remoteNotification:远程通知的ExtensionAbility。

- remoteLocation:远程定位的ExtensionAbility。

- voip:网络音视频通话的ExtensionAbility。

- action:自定义操作业务模板的ExtensionAbility,为开发者提供基于UIExtension的自定义操作业务模板

- adsService:广告业务的ExtensionAbility,提供广告业务框架。

- ads:广告业务的ExtensionAbility,与AdComponent控件组合使用,将广告页面展示到其他应用中。仅支持设备厂商使用。

- appAccountAuthorization:应用帐号授权扩展能力的ExtensionAbility,用于处理帐号授权请求,比如帐号登录授权。

- autoFill/password:用于账号和密码自动填充业务的ExtensionAbility,支持数据的保存、填充能力。

- hms/account:应用帐号管理能力的ExtensionAbility。

- sysDialog/atomicServicePanel:提供构建元服务服务面板的基础能力的ExtensionAbility,使用时基于UIExtensionAbility实现。

- sysDialog/userAuth:本地用户鉴权的ExtensionAbility。

- sysDialog/common:通用弹窗的ExtensionAbility。

- sysDialog/power:关机重启弹窗的ExtensionAbility。

- sysDialog/print:打印模态弹窗的ExtensionAbility。

- sysDialog/meetimeCall:畅连通话的ExtensionAbility。

- sysDialog/meetimeContact:畅连联系人的ExtensionAbility。

- sysPicker/meetimeMessage:畅连消息的ExtensionAbility。

- sysPicker/meetimeContact:畅连联系人列表的ExtensionAbility。

- sysPicker/meetimeCallLog:畅连通话记录列表的ExtensionAbility。

- sysPicker/share:系统分享的ExtensionAbility。

- sysPicker/mediaControl:投播组件的ExtensionAbility。

- sysPicker/photoPicker:三方应用通过对应的UIExtensionType拉起图库picker界面。

- sys/commonUI:非通用的ExtensionAbility,提供业务属性强相关的嵌入式显示或弹框。

说明:

其中service、adsService、sys/commonUI、fileAccess、sysDialog类型、sysPicker类型和dataShare类型,仅支持系统应用配置,三方应用配置不生效。

字符串该标签不可缺省。
permissions

标识当前ExtensionAbility组件自定义的权限信息。当其他应用访问该ExtensionAbility时,需要申请相应的权限信息。

一个数组元素为一个权限名称。通常采用反向域名格式(最大255字节),取值为系统预定义的权限

字符串数组该标签可缺省,缺省值为空。
readPermission标识读取当前ExtensionAbility组件数据所需的权限,取值为长度不超过255字节的字符串。仅当ExtensionAbility组件的type为dataShare时支持配置该标签。字符串该标签可缺省,缺省值为空。
writePermission标识向当前ExtensionAbility组件写数据所需的权限,取值为长度不超过255字节的字符串。仅当ExtensionAbility组件的type为dataShare时支持配置该标签。字符串该标签可缺省,缺省值为空。
uri

标识当前ExtensionAbility组件提供的数据URI,取值为长度不超过255字节的字符数组,用反向域名的格式表示。

说明:

该标签在type为dataShare类型的ExtensionAbility时,不可缺省。

字符串该标签可缺省,缺省值为空。
skills

标识当前ExtensionAbility组件能够接收的Want的特征集。

配置规则:entry包可以配置多个具有入口能力的skills标签(配置了ohos.want.action.home和entity.system.home)的ExtensionAbility,其中第一个配置了skills标签的ExtensionAbility中的label和icon作为服务或应用的label和icon。

说明:

服务的Feature包不能配置具有入口能力的skills标签。

应用的Feature包可以配置具有入口能力的skills标签。

数组该标签可缺省,缺省值为空。
metadata标识当前ExtensionAbility组件的元信息。对象该标签可缺省,缺省值为空。
exported

标识当前ExtensionAbility组件是否可以被其他应用调用。

- true:表示可以被其他应用调用。

- false:表示不可以被其他应用调用,包括无法被aa工具命令拉起应用。

布尔值该标签可缺省,缺省值为false。
extensionProcessMode

标识当前ExtensionAbility组件的多进程实例模型,当前只对UIExtensionAbility以及从UIExtensionAbility扩展的ExtensionAbility生效。

- instance:表示该ExtensionAbility每个实例一个进程。

- type:表示该ExtensionAbility实例都运行在同一个进程里,与其他ExtensionAbility分离进程。

- bundle:表示该ExtensionAbility实例都运行在应用统一进程里,与其他配置了bundle模型的ExtensionAbility共进程。

字符串该标签可缺省,缺省值为空。

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",
        }
      ],
      "extensionProcessMode": "instance"
    }
  ]
}

 

requestPermissions标签

该标签标识应用运行时需向系统申请的权限集合,权限设置方式参见申请应用权限
 

说明

  • 在requestPermissions标签中配置的权限项将在应用级别生效,即该权限适用于整个应用程序。
  • 如果应用需要订阅自己发布的事件,而且应用在extensionAbilities标签中的permissions字段中设置了访问该应用所需要的权限,那么应用也需要在requestPermissions标签中注册相关权限才能收到该事件。
  • 生态治理中,要求受限的权限必须要校验usedScene,但是在HAR/HSP中没有usedScene/ability,会影响构建出包,所以HAR/HSP包中不再校验这个逻辑。

 

表10 requestPermissions标签说明

属性名称含义数据类型是否可缺省
name标识需要使用的权限名称。字符串该标签不可缺省。
reason标识申请权限的原因,取值需要采用资源引用格式,以适配多语种。字符串

该标签可缺省,缺省值为空。

说明:

当申请的权限为user_grant权限时,该字段必填,否则不允许在应用市场上架。

usedScene

标识权限使用的场景,包含abilities和when两个子标签。

- abilities:可以配置为多个UIAbility或者ExtensionAbility名称的字符串数组。

- when:表示调用时机,支持的取值包括inuse(使用时)和always(始终)。

对象

该标签可缺省,缺省值为空。

说明:

HAR/HSP的场景下对于受限的权限不再校验usedScene权限。当申请的权限为user_grant权限时,abilities标签在hap中必填,when标签可选。

requestPermissions示例:
 

{
  "module" : {
    "requestPermissions": [
      {
        "name": "ohos.abilitydemo.permission.PROVIDER",
        "reason": "$string:reason",
        "usedScene": {
          "abilities": [
            "EntryFormAbility"
          ],
          "when": "inuse"
        }
      }
    ]
  }
}

shortcuts标签

shortcuts标识应用的快捷方式信息。标签值为数组,包含四个子标签shortcutId、label、icon、wants。

metadata中指定shortcut信息,其中:

  • name:指定shortcuts的名称,使用ohos.ability.shortcuts作为shortcuts信息的标识。

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

表11 shortcuts标签说明

 

属性名称含义类型是否可缺省
shortcutId标识快捷方式的ID,取值为长度不超过63字节的字符串。字符串该标签不可缺省。
label标识快捷方式的标签信息,即快捷方式对外显示的文字描述信息。取值为长度不超过255字节的字符串,可以是描述性内容,也可以是标识label的资源索引。字符串该标签可缺省,缺省值为空。
icon标识快捷方式的图标,取值为资源文件的索引。字符串该标签可缺省,缺省值为空。
wants

标识快捷方式内定义的目标wants信息集合,每个wants可配置bundleName、moduleName和abilityName三个子标签,并且支持配置其中的一个或多个标签。

- bundleName:表示快捷方式的目标Bundle名称,字符串类型。

- moduleName:表示快捷方式的目标Module名,字符串类型。

- abilityName:表示快捷方式的目标组件名,字符串类型。

对象该标签可缺省,缺省为空。
  1. 在/resources/base/profile/目录下配置shortcuts_config.json配置文件。

    {
      "shortcuts": [
        {
          "shortcutId": "id_test1",
          "label": "$string:shortcut",
          "icon": "$media:aa_icon",
          "wants": [
            {
              "bundleName": "com.ohos.hello",
              "moduleName": "entry",
              "abilityName": "EntryAbility"
            }
          ]
        }
      ]
    }
    

 在module.json5配置文件的abilities标签中,针对需要添加快捷方式的UIAbility进行配置metadata标签,使shortcut配置文件对该UIAbility生效。

{
  "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"
          }
        ]
      }
    ]
  }
}

  • 23
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值