• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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  ```