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