1# @ohos.application.StaticSubscriberExtensionContext (StaticSubscriberExtensionContext) 2 3StaticSubscriberExtensionContext模块是StaticSubscriberExtensionAbility的上下文环境,继承自ExtensionContext。 4 5StaticSubscriberExtensionContext模块提供StaticSubscriberExtensionAbility具有的接口和能力。 6 7> **说明:** 8> 9> 本模块首批接口从API version 10开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 10> 本模块接口仅可在Stage模型下使用。 11 12## 导入模块 13 14```ts 15import StaticSubscriberExtensionContext from '@ohos.application.StaticSubscriberExtensionContext' 16``` 17 18## 使用说明 19 20在使用StaticSubscriberExtensionContext的功能前,需要通过StaticSubscriberExtensionAbility获取。 21 22```ts 23import StaticSubscriberExtensionAbility from '@ohos.application.StaticSubscriberExtensionAbility' 24import StaticSubscriberExtensionContext from '@ohos.application.StaticSubscriberExtensionContext' 25 26export default class MyStaticSubscriberExtensionAbility extends StaticSubscriberExtensionAbility { 27 context: StaticSubscriberExtensionContext = this.context; 28}; 29``` 30 31## StaticSubscriberExtensionContext.startAbility 32 33startAbility(want: Want, callback: AsyncCallback<void>): void; 34 35拉起一个静态订阅所属的同应用的Ability。使用callback异步回调。 36 37使用规则: 38 - 调用方应用位于后台时,使用该接口启动Ability需申请`ohos.permission.START_ABILITIES_FROM_BACKGROUND`权限 39 - 跨应用场景下,目标Ability的visible属性若配置为false,调用方应用需申请`ohos.permission.START_INVISIBLE_ABILITY`权限 40 41**需要权限**:ohos.permission.START_ABILITIES_FROM_BACKGROUND 42 43**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 44 45**系统API**:该接口为系统接口,三方应用不支持调用。 46 47**参数:** 48 49| 参数名 | 类型 | 必填 | 说明 | 50| -------- | ----------------------------------- | ---- | -------------------------- | 51| want | [Want](js-apis-app-ability-want.md) | 是 | 启动Ability的want信息。 | 52| callback | AsyncCallback<void> | 是 | callback形式返回启动结果。 | 53 54**错误码:** 55 56以下错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 57 58| 错误码ID | 错误信息 | 59| -------- | ------------------------------------------------------------ | 60| 16000001 | The specified ability does not exist. | 61| 16000002 | Incorrect ability type. | 62| 16000004 | Can not start invisible component. | 63| 16000005 | The specified process does not have the permission. | 64| 16000006 | Cross-user operations are not allowed. | 65| 16000008 | The crowdtesting application expires. | 66| 16000009 | An ability cannot be started or stopped in Wukong mode. | 67| 16000011 | The context does not exist. | 68| 16000050 | Internal error. | 69| 16000053 | The ability is not on the top of the UI. | 70| 16000055 | Installation-free timed out. | 71| 16200001 | The caller has been released. | 72| 16300003 | The target application is not self application. | 73 74**示例:** 75 76 ```ts 77 import Want from '@ohos.app.ability.Want'; 78 import { BusinessError } from '@ohos.base'; 79 80 let want: Want = { 81 bundleName: "com.example.myapp", 82 abilityName: "MyAbility" 83 }; 84 85 try { 86 this.context.startAbility(want, (error: BusinessError) => { 87 if (error) { 88 // 处理业务逻辑错误 89 console.log('startAbility failed, error.code: ' + JSON.stringify(error.code) + 90 ' error.message: ' + JSON.stringify(error.message)); 91 return; 92 } 93 // 执行正常业务 94 console.log('startAbility succeed'); 95 }); 96 } catch (paramError) { 97 // 处理入参错误异常 98 let code = (paramError as BusinessError).code; 99 let message = (paramError as BusinessError).message; 100 console.log('startAbility failed, error.code: ' + JSON.stringify(code) + 101 ' error.message: ' + JSON.stringify(message)); 102 } 103 ``` 104 105## StaticSubscriberExtensionContext.startAbility 106 107startAbility(want: Want): Promise<void>; 108 109拉起一个静态订阅所属的同应用的Ability。使用Promise异步回调。 110 111使用规则: 112 - 调用方应用位于后台时,使用该接口启动Ability需申请`ohos.permission.START_ABILITIES_FROM_BACKGROUND`权限 113 - 跨应用场景下,目标Ability的visible属性若配置为false,调用方应用需申请`ohos.permission.START_INVISIBLE_ABILITY`权限 114 115**需要权限**:ohos.permission.START_ABILITIES_FROM_BACKGROUND 116 117**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 118 119**系统API**:该接口为系统接口,三方应用不支持调用。 120 121**参数:** 122 123| 参数名 | 类型 | 必填 | 说明 | 124| ------ | ----------------------------------- | ---- | ----------------------- | 125| want | [Want](js-apis-app-ability-want.md) | 是 | 启动Ability的want信息。 | 126 127**返回值:** 128 129| 类型 | 说明 | 130| ------------------- | ------------------------- | 131| Promise<void> | Promise形式返回启动结果。 | 132 133**错误码:** 134 135以下错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 136 137| 错误码ID | 错误信息 | 138| -------- | ------------------------------------------------------------ | 139| 16000001 | The specified ability does not exist. | 140| 16000002 | Incorrect ability type. | 141| 16000004 | Can not start invisible component. | 142| 16000005 | The specified process does not have the permission. | 143| 16000006 | Cross-user operations are not allowed. | 144| 16000008 | The crowdtesting application expires. | 145| 16000009 | An ability cannot be started or stopped in Wukong mode. | 146| 16000011 | The context does not exist. | 147| 16000050 | Internal error. | 148| 16000053 | The ability is not on the top of the UI. | 149| 16000055 | Installation-free timed out. | 150| 16200001 | The caller has been released. | 151| 16300003 | The target application is not self application. | 152 153**示例:** 154 155 ```ts 156 import Want from '@ohos.app.ability.Want'; 157 import { BusinessError } from '@ohos.base'; 158 159 let want: Want = { 160 bundleName: "com.example.myapp", 161 abilityName: "MyAbility" 162 }; 163 164 try { 165 this.context.startAbility(want) 166 .then(() => { 167 // 执行正常业务 168 console.log('startAbility succeed'); 169 }) 170 .catch((error: BusinessError) => { 171 // 处理业务逻辑错误 172 console.log('startAbility failed, error.code: ' + JSON.stringify(error.code) + 173 ' error.message: ' + JSON.stringify(error.message)); 174 }); 175 } catch (paramError) { 176 // 处理入参错误异常 177 let code = (paramError as BusinessError).code; 178 let message = (paramError as BusinessError).message; 179 console.log('startAbility failed, error.code: ' + JSON.stringify(code) + 180 ' error.message: ' + JSON.stringify(message)); 181 } 182 ```