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:表示快捷方式的目标组件名,字符串类型。 | 对象 | 该标签可缺省,缺省为空。 |
-
在/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"
}
]
}
]
}
}