该标签标识HAP的自定义元信息,标签值为数组类型,包含name、value、resource三个子标签。
表1 metadata标签说明
| 属性名称 | 含义 | 数据类型 | 是否可缺省 |
|---|---|---|---|
| name | 标识数据项的名称,取值为长度不超过255字节的字符串。 | 字符串 | 该标签可缺省,缺省值为空。 |
| value | 标识数据项的值,取值为长度不超过255字节的字符串。 | 字符串 | 该标签可缺省,缺省值为空。 |
| resource | 标识了用户自定义数据,取值为长度不超过255字节的字符串,内容为该数据的资源索引,例如配置成$profile:shortcuts_config,表示指向了/resources/base/profile/shortcuts_config.json配置文件。 | 字符串 | 该标签可缺省,缺省值为空。 |
下面给出几种metadata标签的使用场景及示例,开发者也可以根据实际需求自定义设置。
使用metadata标签配置主窗口的默认大小和位置(单位为vp)。其中name取值及对应含义如下:
使用metadata标签配置removeStartingWindow接口的启用状态。配置项为:name取值enable.remove.starting.window,value取值true或false。true表示启用,false表示不启用。未配置时,默认为false。
使用metadata标签配置主窗口启动时是否以最大化状态显示。配置项为:name为ohos.ability.window.isMaximize,value取值为true或false,取值为true表示最大化启动、取值为false表示不以最大化状态启动,未配置时默认为false。主窗口最大化显示配置存在如下约束与限制:
使用metadata配置自由窗口下的可支持窗口模式。配置项为:name为ohos.ability.window.supportWindowModeInFreeMultiWindow,value取值为:fullscreen(表示全屏模式)、split(表示分屏模式)、floating(表示自由悬浮窗口模式)。value取值为字符串,可以配置多种模式,每个模式之间用逗号分隔开,不区分顺序,不添加空格,例如:fullscreen,split。仅在支持并处于自由窗口状态的设备上生效;在支持但不处于自由窗口状态的设备及不支持自由窗口状态的设备上配置不生效也不报错。
自由多窗下的可支持窗口模式可以采用多种方法进行配置,配置优先级为:通过SetSupportedWindowModes接口配置 > 通过StartAbility配置StartOptions中的SupportWindowMode > 使用metadata配置 > 配置module.json5中abilities标签下的SupportWindowMode属性。
非自由多窗模式下只能通过配置module.json5中abilities标签下的SupportWindowMode属性配置窗口支持模式,其他配置方式均不生效。
{
"module": {
"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": "ohos.ability.window.isMaximize",
"value": "true"
},
{
"name": "enable.remove.starting.window",
"value": "true"
},
{
"name": "ohos.ability.window.supportWindowModeInFreeMultiWindow",
"value": "fullscreen,split,floating",
}],
}],
"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"
}],
}]
}
}