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

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐