• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @ohos.app.businessAbilityRouter (业务路由模块)(系统接口)
2<!--Kit: Ability Kit-->
3<!--Subsystem: Ability-->
4<!--Owner: @zhu-feimo-->
5<!--Designer: @ccllee1-->
6<!--Tester: @lixueqing513-->
7<!--Adviser: @huipeizi-->
8
9本模块用于查询当前设备上安装的应用程序的路由Ability信息。系统通过业务路由提供标准化的业务模板和管理能力,允许开发者依据特定业务类别注册标准业务,构建一个庞大且丰富的业务超市。系统应用可以便捷地从业务路由中挑选并获取合适的业务进行使用。同时业务路由还提供统一的跳转管控规则,确保应用与业务之间合理跳转,防止非法前后台跳转,杜绝三方应用通过跳转变相分发,从而保障系统的安全性与良好的用户体验。
10
11> **说明:**
12>
13> 本模块首批接口从API version 10 开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
14>
15>本模块接口为系统接口。
16
17## 导入模块
18
19``` ts
20import businessAbilityRouter from '@ohos.app.businessAbilityRouter';
21```
22
23## 权限列表
24
25| 权限                                       | 权限等级     | 描述                 |
26| ------------------------------------------ | ------------ | -------------------- |
27| ohos.permission.GET_BUNDLE_INFO_PRIVILEGED | system_basic | 可查询所有应用信息。 |
28
29权限等级参考[权限APL等级说明](../../security/AccessToken/app-permission-mgmt-overview.md#权限机制中的基本概念)。
30
31## BusinessType
32
33此枚举值用于标识过滤条件类型。
34
35**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
36
37**系统接口**:此接口为系统接口。
38
39| 名称        | 值   | 说明                                 |
40| ----------- | ---- | ------------------------------------ |
41| SHARE       | 0    | 标识具有共享类型的Ability信息。 |
42| UNSPECIFIED | 255  | 标识未指定类型的Ability信息。   |
43
44## BusinessAbilityFilter
45
46此过滤值用于过滤查询的Ability类型。
47
48**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
49
50**系统接口**:此接口为系统接口。
51
52| 名称         | 类型         | 只读 | 可选 | 说明                                   |
53| ------------ | ------------ | ---- | ---- | -------------------------------------- |
54| businessType | [BusinessType](#businesstype) | 否   | 否   | 标识Ability信息的类型。           |
55| mimeType     | string       | 否   | 是   | 标识支持mime类型的Ability信息。 |
56| uri          | string       | 否   | 是   | 标识Ability信息支持的uri。        |
57
58## businessAbilityRouter.queryBusinessAbilityInfo
59
60queryBusinessAbilityInfo(filter: BusinessAbilityFilter, callback: AsyncCallback\<Array\<BusinessAbilityInfo\>\>): void;
61
62通过给定的过滤条件查询Ability信息。使用callback异步回调,成功时返回查询到的路由Ability信息,失败时返回错误信息。
63
64**需要权限**:ohos.permission.GET_BUNDLE_INFO_PRIVILEGED
65
66**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
67
68**系统接口**:此接口为系统接口。
69
70**参数:**
71
72| 参数名       | 类型     | 必填   | 说明                                    |
73| ----------- | ------ | ---- | --------------------------------------- |
74| filter | [BusinessAbilityFilter](#businessabilityfilter) | 是    | 用于按业务类型过滤的对象。 |
75| callback | AsyncCallback\<Array\<[BusinessAbilityInfo](js-apis-bundleManager-businessAbilityInfo-sys.md#businessabilityinfo)\>\> | 是 | 回调函数。返回查询到的Ability信息,否则为错误对象。 |
76
77**错误码**:
78
79以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)。
80
81| 错误码ID | 错误信息 |
82| ------- | -------- |
83| 201 | Permission denied. |
84| 202 | Not System App. Interface caller is not a system app. |
85| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. 3. Parameter verification failed. |
86
87**示例:**
88
89```ts
90import businessAbilityRouter from '@ohos.app.businessAbilityRouter';
91import { BusinessError } from '@ohos.base';
92
93let filter: businessAbilityRouter.BusinessAbilityFilter = {businessType: businessAbilityRouter.BusinessType.SHARE};
94
95try {
96    businessAbilityRouter.queryBusinessAbilityInfo(filter, (error, data) => {
97        if (error) {
98            console.error('queryBusinessAbilityInfo failed ' + error.message);
99            return;
100        }
101        console.info('queryBusinessAbilityInfo success');
102    });
103} catch (error) {
104    let message = (error as BusinessError).message;
105    console.error('queryBusinessAbilityInfo failed ' + message);
106}
107```
108
109## businessAbilityRouter.queryBusinessAbilityInfo
110
111queryBusinessAbilityInfo(filter: BusinessAbilityFilter): Promise\<Array\<BusinessAbilityInfo\>\>;
112
113通过给定的过滤条件查询Ability信息。使用Promise异步回调,成功时返回查询到的路由Ability信息,失败时返回错误信息。
114
115**需要权限**:ohos.permission.GET_BUNDLE_INFO_PRIVILEGED
116
117**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
118
119**系统接口**:此接口为系统接口。
120
121**参数:**
122
123| 参数名       | 类型                              | 必填   | 说明                                    |
124| ----------- | ------------------------------- | ---- | --------------------------------------- |
125| filter | [BusinessAbilityFilter](#businessabilityfilter) | 是    | 包含要查询的Ability信息的筛选类型。  |
126
127**返回值:**
128
129| 类型                                                         | 说明                                        |
130| ------------------------------------------------------------ | ------------------------------------------- |
131| Promise\<Array\<[BusinessAbilityInfo](js-apis-bundleManager-businessAbilityInfo-sys.md#businessabilityinfo)\>\> | Promise对象,返回符合过滤条件的Ability信息。 |
132
133**错误码**:
134
135以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)。
136
137| 错误码ID | 错误信息 |
138| ------- | -------- |
139| 201 | Permission denied. |
140| 202 | Not System App. Interface caller is not a system app. |
141| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. 3. Parameter verification failed. |
142
143**示例:**
144
145```ts
146import businessAbilityRouter from '@ohos.app.businessAbilityRouter';
147import { BusinessError } from '@ohos.base';
148
149let filter: businessAbilityRouter.BusinessAbilityFilter = {businessType: businessAbilityRouter.BusinessType.SHARE};
150
151try {
152    businessAbilityRouter.queryBusinessAbilityInfo(filter)
153        .then(() => {
154            console.info('queryBusinessAbilityInfo success');
155        }).catch((error: BusinessError) => {
156            console.error('queryBusinessAbilityInfo failed ' + error.message);
157        });
158} catch (error) {
159    let message = (error as BusinessError).message;
160    console.error('queryBusinessAbilityInfo failed ' + message);
161}
162```
163