diff --git a/zh-cn/application-dev/application-models/application-component-configuration-stage.md b/zh-cn/application-dev/application-models/application-component-configuration-stage.md index e0d9bdcbff9413cc463ee502f2c4b81c99afa1b8..fd36d620f326c7bd127deb89b8e06261b99327f8 100644 --- a/zh-cn/application-dev/application-models/application-component-configuration-stage.md +++ b/zh-cn/application-dev/application-models/application-component-configuration-stage.md @@ -35,9 +35,7 @@ Stage模型支持对组件配置入口图标和入口标签。入口图标和入口标签会显示在桌面上。 - 入口图标需要在[module.json5配置文件](../quick-start/module-configuration-file.md)中配置,在abilities标签下面有icon标签。例如希望在桌面上显示该UIAbility的图标,则需要在skills标签下面的entities中添加"entity.system.home"、actions中添加"action.system.home"。同一个应用有多个UIAbility配置上述字段时,桌面上会显示出多个图标,分别对应各自的UIAbility。 - - 入口标签需要在[module.json5配置文件](../quick-start/module-configuration-file.md)中配置,在abilities标签下面有label标签。例如希望在桌面上显示该UIAbility的图标,则需要在skills标签下面的entities中添加"entity.system.home"、actions中添加"action.system.home"。同一个应用有多个UIAbility配置上述字段时,桌面上会显示出多个标签,分别对应各自的UIAbility。 + 入口图标需要在[module.json5配置文件](../quick-start/module-configuration-file.md)中配置,在abilities标签下面有icon标签。例如希望在桌面上显示该UIAbility的图标,则需要在skills标签下面的entities中添加"entity.system.home"、actions中添加"ohos.want.action.home"。同一个应用有多个UIAbility配置上述字段时,桌面上会显示出多个图标,分别对应各自的UIAbility。 ```json { @@ -54,7 +52,7 @@ "entity.system.home" ], "actions": [ - "action.system.home" + "ohos.want.action.home" ] } ], diff --git a/zh-cn/application-dev/quick-start/module-configuration-file.md b/zh-cn/application-dev/quick-start/module-configuration-file.md index 79f52a726302415bf8ce857ecfee99c06e599d4a..28ba9152445b62d6cbda98e9f7b70712312fab5d 100644 --- a/zh-cn/application-dev/quick-start/module-configuration-file.md +++ b/zh-cn/application-dev/quick-start/module-configuration-file.md @@ -200,7 +200,64 @@ deviceTypes示例: ## abilities标签 -ablities标签描述UIAbility组件的配置信息,标签值为数组类型,该标签下的配置只对当前UIAbility生效。 +abilities标签描述UIAbility组件的配置信息,标签值为数组类型,该标签下的配置只对当前UIAbility生效。 + +**OpenHarmony中不允许应用隐藏启动图标** + +OpenHarmony系统对无图标应用严格管控。如果HAP中没有配置启动图标,那么系统将应用app.json中的icon作为启动图标,并显示在桌面上。
+用户点击该图标,将跳转到Settings的应用管理中对应的应用详情页面中。
+如果应用想要隐藏启动图标,需要配置AllowAppDesktopIconHide应用特权,具体配置方式参考[应用特权配置指南](../../device-dev/subsystems/subsys-app-privilege-config-guide.md)。 + + +**启动图标的设置:** 需要在配置文件(module.json5)中abilities配置下设置icon,label以及skills,而且skills的配置下的必须同时包含“ohos.want.action.home” 和 “entity.system.home”: +``` +{ + "module":{ + + ... + + "abilities": [{ + "icon": "$media:icon", + "label": "Login", + "skills": [{ + "actions": ["ohos.want.action.home"], + "entities": ["entity.system.home"], + "uris": [] + }] + }], + ... + + } +} +``` + +**启动图标的查询** +* HAP中包含Ability + * 配置文件(module.json5)中abilities配置中设置了启动图标 + * 该应用没有隐藏图标的特权 + * 返回的桌面图标为该Ability配置的图标 + * 返回的桌面Label为该Ability配置的Label(如果没有配置Label,返回包名) + * 返回的组件名为该Ability的组件名 + * 用户点击该桌面图标,页面跳转到该Ability首页 + * 该应用具有隐藏图标的特权 + * 桌面查询时不返回应用信息,不会在桌面上显示对应的图标。 + * 配置文件(module.json5)中abilities配置中未设置启动图标 + * 该应用没有隐藏图标的特权 + * 返回的桌面图标为app配置下的图标(app.json中icon为必填项) + * 返回的桌面Label为app配置下的label(app.json中label为必填项) + * 返回的组件名为应用详情页面的组件名(该组件为系统内置) + * 用户点击该桌面图标,页面跳转到该应用的详情页面 + * 该应用具有隐藏图标的特权 + * 桌面查询时不返回应用信息,不会在桌面上显示对应的图标。 +* HAP中不包含Ability + * 该应用没有隐藏图标的特权 + * 返回的桌面图标为app配置下的图标(app.json中icon为必填项) + * 返回的桌面Label为app配置下的label(app.json中label为必填项) + * 返回的组件名为应用详情页面的组件名(该组件为系统内置) + * 用户点击该桌面图标,页面跳转到该应用的详情页面 + * 该应用具有隐藏图标的特权 + * 桌面查询时不返回应用信息,不会在桌面上显示对应的图标。

+ **表4** **abilities标签说明** @@ -335,6 +392,40 @@ skills示例: } ``` +**增强隐式查询功能** + +支持Uri级别的前缀匹配。 +当配置文件只配置scheme,或者只配置scheme和host,或者只配置scheme,host和port时,参数传入以配置文件为前缀的Uri,配置成功。 + + + * 查询功能增强涉及以下接口
+ [@ohos.bundle.bundleManager](../reference/apis/js-apis-bundleManager.md#bundlemanagerqueryabilityinfo)
+ 1. function queryAbilityInfo(want: Want, abilityFlags: number, callback: AsyncCallback>): void;
+ 2. function queryAbilityInfo(want: Want, abilityFlags: number, userId: number, callback: AsyncCallback>): void;
+ 3. function queryAbilityInfo(want: Want, abilityFlags: number, userId?: number): Promise>; + * 配置要求
+ abilities -> skills -> uris对象
+ 配置1: 只配置 scheme = 'http'
+ 配置2: 只配置 ( scheme = 'http' ) + ( host = 'example.com' )
+ 配置3: 只配置 ( scheme = 'http' ) + ( host = 'example.com' ) + ( port = '8080' ) + * 前缀匹配
+ 参数[want](../application-models/want-overview.md)下uri,调用queryAbilityInfo查询接口
+ 1. uri = 'https://' 无匹配
+ 2. uri = 'http://' 可以匹配 配置1
+ 3. uri = 'https://example.com' 无匹配
+ 4. uri = 'https://exa.com' 无匹配
+ 5. uri = 'http://exa.com' 可以匹配 配置1
+ 6. uri = 'http://example.com' 可以匹配 配置1 配置2
+ 7. uri = 'https://example.com:8080' 无匹配
+ 8. uri = 'http://exampleaa.com:8080' 可以匹配 配置1
+ 9. uri = 'http://example.com:9180' 可以匹配 配置1 配置2
+ 10. uri = 'http://example.com:8080' 可以匹配 配置1 配置2 配置3
+ 11. uri = 'https://example.com:9180/path' 无匹配
+ 12. uri = 'http://exampleap.com:8080/path' 可以匹配 配置1
+ 13. uri = 'http://example.com:9180/path' 可以匹配 配置1 配置2
+ 14. uri = 'http://example.com:8080/path' 可以匹配 配置1 配置2 配置3
+ + ## extensionAbilities标签 diff --git a/zh-cn/application-dev/quick-start/module-structure.md b/zh-cn/application-dev/quick-start/module-structure.md index a1c8867f3d3577f3cefc2efdd143885430565b86..5da4b2204179728ef1ddfd900fcaf75066256d98 100644 --- a/zh-cn/application-dev/quick-start/module-structure.md +++ b/zh-cn/application-dev/quick-start/module-structure.md @@ -190,6 +190,66 @@ metadata对象示例: ## abilities对象的内部结构 +**OpenHarmony中不允许应用隐藏启动图标** + +OpenHarmony系统对无图标应用严格管控。如果HAP中没有配置启动图标,那么系统会给该应用创建一个默认的图标显示在桌面上;
+用户点击该图标,将跳转到Settings的应用管理中对应的应用详情页面中。
+如果应用想要隐藏启动图标,需要配置AllowAppDesktopIconHide应用特权,具体配置方式参考[应用特权配置指南](../../device-dev/subsystems/subsys-app-privilege-config-guide.md)。 + + +**启动图标的设置:** 需要在配置文件(config.json)中abilities配置下设置icon,label以及skills,而且skills的配置下必须同时包含“ohos.want.action.home” 和 “entity.system.home”: +``` +{ + "module":{ + + ... + + "abilities": [{ + "icon": "$media:icon", + "label": "Login", + "skills": [{ + "actions": ["ohos.want.action.home"], + "entities": ["entity.system.home"], + "uris": [] + }] + }], + + ... + + } +} +``` + +**启动图标的查询** +* HAP中包含Page类型的Ability + * 配置文件(config.json)中abilities配置中设置了启动图标 + * 该应用没有隐藏图标的特权 + * 返回的桌面图标为该Ability配置的图标 + * 返回的桌面Label为该Ability配置的Label(如果没有配置Label,返回包名) + * 返回的组件名为该Ability的组件名 + * 用户点击该桌面图标,页面跳转到该Ability首页 + * 该应用具有隐藏图标的特权 + * 桌面查询时不返回应用信息,不会在桌面上显示对应的图标。 + * 配置文件(config.json)中abilities配置中未设置启动图标 + * 该应用没有隐藏图标的特权 + * 返回的桌面图标为系统默认图标 + * 返回的桌面Label为该应用的包名 + * 返回的组件名为应用详情页面的组件名(该组件为系统内置) + * 用户点击该桌面图标,页面跳转到该应用的详情页面 + * 该应用具有隐藏图标的特权 + * 桌面查询时不返回应用信息,不会在桌面上显示对应的图标。 +* HAP中不包含Page类型的Ability + * 该应用没有隐藏图标的特权 + * 返回的桌面图标为系统默认图标 + * 返回的桌面Label为该应用的包名 + * 返回的组件名为应用详情页面的组件名(该组件为系统内置) + * 用户点击该桌面图标,页面跳转到该应用的详情页面 + * 该应用具有隐藏图标的特权 + * 桌面查询时不返回应用信息,不会在桌面上显示对应的图标。 + +注:应用详情页面中显示的图标与label,可能与桌面上显示的不同。如果非Page类型的ability配置了入口图标和label,那么详情页中显示的即为配置的。

+ + **表8** **abilities对象的内部结构说明** | 属性名称 | 含义 | 数据类型 | 是否可缺省 | @@ -351,6 +411,40 @@ skills示例: ] ``` +**增强隐式查询功能** + +支持Uri级别的前缀匹配。 +当配置文件只配置scheme,或者只配置scheme和host,或者只配置scheme,host和port时,参数传入以配置文件为前缀的Uri,配置成功。 + + * 查询功能增强涉及以下接口
+ [@ohos.bundle.bundleManager](../reference/apis/js-apis-bundleManager.md#bundlemanagerqueryabilityinfo)
+ 1. function queryAbilityInfo(want: Want, abilityFlags: number, callback: AsyncCallback>): void;
+ 2. function queryAbilityInfo(want: Want, abilityFlags: number, userId: number, callback: AsyncCallback>): void;
+ 3. function queryAbilityInfo(want: Want, abilityFlags: number, userId?: number): Promise>; + * 配置要求
+ abilities -> skills -> uris对象
+ 配置1: 只配置 scheme = 'http'
+ 配置2: 只配置 ( scheme = 'http' ) + ( host = 'www.example.com' )
+ 配置3: 只配置 ( scheme = 'http' ) + ( host = 'www.example.com' ) + ( port = '8080' ) + * 前缀匹配
+ [want](../application-models/want-overview.md)下uri,调用queryAbilityInfo查询接口
+ 1. uri = 'https://' 无匹配
+ 2. uri = 'http://' 可以匹配 配置1
+ 3. uri = 'https://www.example.com' 无匹配
+ 4. uri = 'https://www.exa.com' 无匹配
+ 5. uri = 'http://www.exa.com' 可以匹配 配置1
+ 6. uri = 'http://www.example.com' 可以匹配 配置1 配置2
+ 7. uri = 'https://www.example.com:8080' 无匹配
+ 8. uri = 'http://www.exampleaa.com:8080' 可以匹配 配置1
+ 9. uri = 'http://www.example.com:9180' 可以匹配 配置1 配置2
+ 10. uri = 'http://www.example.com:8080' 可以匹配 配置1 配置2 配置3
+ 11. uri = 'https://www.example.com:9180/query/student/name' 无匹配
+ 12. uri = 'http://www.exampleap.com:8080/query/student/name' 可以匹配 配置1
+ 13. uri = 'http://www.example.com:9180/query/student/name' 可以匹配 配置1 配置2
+ 14. uri = 'http://www.example.com:8080/query/student/name' 可以匹配 配置1 配置2 配置3
+ + + ## reqPermissions权限申请 **表12** **reqPermissions权限申请字段说明** diff --git a/zh-cn/application-dev/reference/apis/js-apis-ability-featureAbility.md b/zh-cn/application-dev/reference/apis/js-apis-ability-featureAbility.md index 4f94ae00bd00972e2feba4ba5cfd302a69109632..fa1a5dc92cfdb29dfbcb2c336a5cbfa2fa2642c9 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-ability-featureAbility.md +++ b/zh-cn/application-dev/reference/apis/js-apis-ability-featureAbility.md @@ -99,7 +99,7 @@ featureAbility.startAbility( { want: { - action: 'action.system.home', + action: 'ohos.want.action.home', entities: ['entity.system.home'], type: 'MIMETYPE', flags: wantConstant.Flags.FLAG_AUTH_READ_URI_PERMISSION, @@ -182,7 +182,7 @@ featureAbility.startAbilityForResult( { want: { - action: 'action.system.home', + action: 'ohos.want.action.home', entities: ['entity.system.home'], type: 'MIMETYPE', flags: wantConstant.Flags.FLAG_AUTH_READ_URI_PERMISSION, @@ -236,7 +236,7 @@ featureAbility.startAbilityForResult( { want: { - action: 'action.system.home', + action: 'ohos.want.action.home', entities: ['entity.system.home'], type: 'MIMETYPE', flags: wantConstant.Flags.FLAG_AUTH_READ_URI_PERMISSION, @@ -288,7 +288,7 @@ featureAbility.terminateSelfWithResult( resultCode: 1, want: { - action: 'action.system.home', + action: 'ohos.want.action.home', entities: ['entity.system.home'], type: 'MIMETYPE', flags: wantConstant.Flags.FLAG_AUTH_READ_URI_PERMISSION, @@ -345,7 +345,7 @@ featureAbility.terminateSelfWithResult( resultCode: 1, want: { - action: 'action.system.home', + action: 'ohos.want.action.home', entities: ['entity.system.home'], type: 'MIMETYPE', flags: wantConstant.Flags.FLAG_AUTH_READ_URI_PERMISSION, @@ -823,7 +823,7 @@ featureAbility.AbilityStartSetting.BOUNDS_KEY | FLAG_ABILITY_CONTINUATION_REVERSIBLE | 0x00000400 | 表示迁移是否是可反向的。 | | FLAG_INSTALL_ON_DEMAND | 0x00000800 | 表示如果未安装指定的Ability,将安装该Ability。 | | FLAG_INSTALL_WITH_BACKGROUND_MODE | 0x80000000 | 表示如果未安装指定的Ability,将在后台安装该Ability。 | -| FLAG_ABILITY_CLEAR_MISSION | 0x00008000 | 表示清除其他任务的操作。可以为传递给 **[ohos.app.Context](js-apis-ability-context.md)** 中**startAbility**方法的**Want**设置此标志,并且必须与**flag_ABILITY_NEW_MISSION**一起使用。 | +| FLAG_ABILITY_CLEAR_MISSION | 0x00008000 | 表示清除其他任务的操作。可以为传递给 **FeatureAbility** 中[startAbility](#featureabilitystartability)方法的参数对象[parameter](js-apis-inner-ability-startAbilityParameter.md)下的[Want](js-apis-application-want.md)设置此标志,并且必须与**flag_ABILITY_NEW_MISSION**一起使用。 | | FLAG_ABILITY_NEW_MISSION | 0x10000000 | 表示在已有的任务栈上创建任务的操作。 | | FLAG_ABILITY_MISSION_TOP | 0x20000000 | 表示如果启动的Ability的现有实例已位于任务栈顶,则将重用该实例。否则,将创建一个新的Ability实例。 | diff --git a/zh-cn/application-dev/reference/apis/js-apis-ability-particleAbility.md b/zh-cn/application-dev/reference/apis/js-apis-ability-particleAbility.md index 8b330185e5753d1032b341328a10b2f75dd08e14..e8770aabfa0d94e438ef8fd10e9371235646ff82 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-ability-particleAbility.md +++ b/zh-cn/application-dev/reference/apis/js-apis-ability-particleAbility.md @@ -47,7 +47,7 @@ particleAbility.startAbility( { want: { - action: 'action.system.home', + action: 'ohos.want.action.home', entities: ['entity.system.home'], type: 'MIMETYPE', flags: wantConstant.Flags.FLAG_AUTH_READ_URI_PERMISSION, @@ -98,7 +98,7 @@ particleAbility.startAbility( { want: { - action: 'action.system.home', + action: 'ohos.want.action.home', entities: ['entity.system.home'], type: 'MIMETYPE', flags: wantConstant.Flags.FLAG_AUTH_READ_URI_PERMISSION, diff --git a/zh-cn/application-dev/security/app-provision-structure.md b/zh-cn/application-dev/security/app-provision-structure.md index 34932b3a2ca9beec759c3220b9272c93c7ecc983..0bee0fc5f8540d8026f026da84a17e4ef2eba842 100644 --- a/zh-cn/application-dev/security/app-provision-structure.md +++ b/zh-cn/application-dev/security/app-provision-structure.md @@ -53,7 +53,6 @@ HarmonyAppProvision文件示例: ``` - ### validity对象内部结构 | 属性名称 | 含义 | 数据类型 | 是否必选 | 是否可缺省 | @@ -63,6 +62,8 @@ HarmonyAppProvision文件示例: ### bundle-info对象内部结构 +**说明:** HarmonyAppProvision文件中的bundle-info对象中bundle-name需要和所签名应用的包名bundleName(config.js/module.json5)保持一致。为了防止同一个HarmonyAppProvision配置文件任意用于不同应用的签名,在应用安装过程中,系统会校验HAP签名信息的bundleName与HAP的配置文件中的bundleName是否一致,如果不一致,HAP无法安装。 + | 属性名称 | 含义 | 数据类型 | 是否必选 | 是否可缺省 | | ------------------------ | ------------------------------- | ------- | -------- | --------- | | developer-id | 表示开发者的唯一ID号,用于OEM厂商标识开发者,开源社区版本该属性不做强制要求。 | 字符串 | 必选 | 不可缺省 | diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.5/changelogs-bundlemanager.md b/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.5/changelogs-bundlemanager.md index 7ca77c26ed3c3d1bcf03d5153c6b02b5ab53388e..5476037708ccb1c1e50e19a8caa105176797447e 100644 --- a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.5/changelogs-bundlemanager.md +++ b/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.5/changelogs-bundlemanager.md @@ -23,12 +23,12 @@ error: verify signature failed. 增加对无图标应用的管控,如果应用未配置入口图标且未申请隐藏图标特权(AllowHideDesktopIcon),则会在桌面上显示一个默认图标,点击后跳转至应用详情页。此处的未配置入口图标规则如下: 1. 应用中未配置abilities字段 -2. 应用中配置了abilities字段,但是没有任何一个page类型的ability中skills如下,即同时包含"action.system.home"和"entity.system.home": +2. 应用中配置了abilities字段,但是没有任何一个page类型的ability中skills如下,即同时包含"ohos.want.action.home"和"entity.system.home": ```json "skills": [ { "actions": [ - "action.system.home" + "ohos.want.action.home" ], "entities": [ "entity.system.home" @@ -40,7 +40,7 @@ error: verify signature failed. 如果应用不需要再桌面显示图标,需要申请相应的隐藏图标特权AllowHideDesktopIcon,并在签名证书文件中或者白名单(install_list_capability.json)配置,可以参考:[应用特权配置指南](../../../device-dev/subsystems/subsys-app-privilege-config-guide.md)。 -如果应该需要在桌面显示图标,则需要在abilities中选择一个ability配置skills,同时包含"action.system.home"和"entity.system.home"。 +如果应该需要在桌面显示图标,则需要在abilities中选择一个ability配置skills,同时包含"ohos.want.action.home"和"entity.system.home"。 **变更影响**
对之前的版本镜像无影响,对使用3.2.10.5版本及之后的系统镜像,如果应用未配置图标,通过命令行的安装方式会在桌面显示默认图标。 @@ -51,7 +51,7 @@ error: verify signature failed. **适配指导**
如果应用不需要再桌面显示图标,需要申请相应的隐藏图标特权AllowHideDesktopIcon,并在签名证书文件中或者白名单(install_list_capability.json)配置,可以参考:[应用特权配置指南](../../../device-dev/subsystems/subsys-app-privilege-config-guide.md)。 -如果应该需要在桌面显示图标,则需要在abilities中选择一个ability配置skills,同时包含"action.system.home"和"entity.system.home"。 +如果应该需要在桌面显示图标,则需要在abilities中选择一个ability配置skills,同时包含"ohos.want.action.home"和"entity.system.home"。 ## cl.bundlemanager.3 底层能力变更,特权AllowAppUsePrivilegeExtension、AllowAppMultiProcess和AllowFormVisibleNotify不支持通过签名证书配置,仅支持通过白名单install_list_capability.json申请这三个特权。