• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# UIExtensionContext
2
3**UIExtensionContext**, inherited from [ExtensionContext](js-apis-inner-application-extensionContext.md), provides the context environment for [UIExtensionAbility](js-apis-app-ability-uiExtensionAbility.md). It provides UIExtensionAbility-related configuration and APIs for operating the UIExtensionAbility. For example, you can use the APIs to start a UIExtensionAbility.
4
5> **NOTE**
6>
7>  - The initial APIs of this module are supported since API version 10. Newly added APIs will be marked with a superscript to indicate their earliest API version.
8>  - The APIs of this module can be used only in the stage model.
9
10## Modules to Import
11
12```ts
13import common from '@ohos.app.ability.common';
14```
15
16## UIExtensionContext.startAbility
17
18startAbility(want: Want, callback: AsyncCallback<void>): void
19
20Starts an ability. This API uses an asynchronous callback to return the result.
21
22Observe the following when using this API:
23 - If an application running in the background needs to call this API to start an ability, it must have the **ohos.permission.START_ABILITIES_FROM_BACKGROUND** permission.
24 - If **exported** of the target ability is **false** in cross-application scenarios, the caller must have the **ohos.permission.START_INVISIBLE_ABILITY** permission.
25 - For details about the startup rules for the components in the stage model, see [Component Startup Rules (Stage Model)](../../application-models/component-startup-rules.md).
26
27**System capability**: SystemCapability.Ability.AbilityRuntime.Core
28
29**Parameters**
30
31| Name| Type| Mandatory| Description|
32| -------- | -------- | -------- | -------- |
33| want | [Want](js-apis-app-ability-want.md) | Yes| Want information about the target ability.|
34| callback | AsyncCallback<void> | Yes| Callback used to return the result.|
35
36**Error codes**
37
38| ID| Error Message|
39| ------- | -------------------------------- |
40| 16000001 | The specified ability does not exist. |
41| 16000002 | Incorrect ability type. |
42| 16000004 | Can not start invisible component. |
43| 16000005 | The specified process does not have the permission. |
44| 16000006 | Cross-user operations are not allowed. |
45| 16000008 | The crowdtesting application expires. |
46| 16000009 | An ability cannot be started or stopped in Wukong mode. |
47| 16000010 | The call with the continuation flag is forbidden.        |
48| 16000011 | The context does not exist.        |
49| 16000012 | The application is controlled.        |
50| 16000013 | The application is controlled by EDM.       |
51| 16000050 | Internal error. |
52| 16000053 | The ability is not on the top of the UI. |
53| 16000055 | Installation-free timed out. |
54| 16200001 | The caller has been released. |
55
56For details about the error codes, see [Ability Error Codes](errorcode-ability.md).
57
58## UIExtensionContext.startAbility
59
60startAbility(want: Want, options: StartOptions, callback: AsyncCallback<void>): void
61
62Starts an ability with the start options specified. This API uses an asynchronous callback to return the result.
63
64Observe the following when using this API:
65 - If an application running in the background needs to call this API to start an ability, it must have the **ohos.permission.START_ABILITIES_FROM_BACKGROUND** permission.
66 - If **exported** of the target ability is **false** in cross-application scenarios, the caller must have the **ohos.permission.START_INVISIBLE_ABILITY** permission.
67 - For details about the startup rules for the components in the stage model, see [Component Startup Rules (Stage Model)](../../application-models/component-startup-rules.md).
68
69**System capability**: SystemCapability.Ability.AbilityRuntime.Core
70
71**Parameters**
72
73| Name| Type| Mandatory| Description|
74| -------- | -------- | -------- | -------- |
75| want | [Want](js-apis-app-ability-want.md)  | Yes| Want information about the target ability.|
76| options | [StartOptions](js-apis-app-ability-startOptions.md) | Yes| Parameters used for starting the ability.|
77| callback | AsyncCallback<void> | Yes| Callback used to return the result.|
78
79**Error codes**
80
81| ID| Error Message|
82| ------- | -------------------------------- |
83| 16000001 | The specified ability does not exist. |
84| 16000004 | Can not start invisible component. |
85| 16000005 | The specified process does not have the permission. |
86| 16000006 | Cross-user operations are not allowed. |
87| 16000008 | The crowdtesting application expires. |
88| 16000009 | An ability cannot be started or stopped in Wukong mode. |
89| 16000011 | The context does not exist.        |
90| 16000012 | The application is controlled.        |
91| 16000013 | The application is controlled by EDM.       |
92| 16000050 | Internal error. |
93| 16000053 | The ability is not on the top of the UI. |
94| 16000055 | Installation-free timed out. |
95| 16200001 | The caller has been released. |
96
97For details about the error codes, see [Ability Error Codes](errorcode-ability.md).
98
99## UIExtensionContext.startAbility
100
101startAbility(want: Want, options?: StartOptions): Promise<void>
102
103Starts an ability. This API uses a promise to return the result.
104
105Observe the following when using this API:
106 - If an application running in the background needs to call this API to start an ability, it must have the **ohos.permission.START_ABILITIES_FROM_BACKGROUND** permission.
107 - If **exported** of the target ability is **false** in cross-application scenarios, the caller must have the **ohos.permission.START_INVISIBLE_ABILITY** permission.
108 - For details about the startup rules for the components in the stage model, see [Component Startup Rules (Stage Model)](../../application-models/component-startup-rules.md).
109
110**System capability**: SystemCapability.Ability.AbilityRuntime.Core
111
112**Parameters**
113
114| Name| Type| Mandatory| Description|
115| -------- | -------- | -------- | -------- |
116| want | [Want](js-apis-app-ability-want.md) | Yes| Want information about the target ability.|
117| options | [StartOptions](js-apis-app-ability-startOptions.md) | No| Parameters used for starting the ability.|
118
119**Return value**
120
121| Type| Description|
122| -------- | -------- |
123| Promise<void> | Promise used to return the result.|
124
125**Error codes**
126
127| ID| Error Message|
128| ------- | -------------------------------- |
129| 16000001 | The specified ability does not exist. |
130| 16000002 | Incorrect ability type. |
131| 16000004 | Can not start invisible component. |
132| 16000005 | The specified process does not have the permission. |
133| 16000006 | Cross-user operations are not allowed. |
134| 16000008 | The crowdtesting application expires. |
135| 16000009 | An ability cannot be started or stopped in Wukong mode. |
136| 16000010 | The call with the continuation flag is forbidden.        |
137| 16000011 | The context does not exist.        |
138| 16000012 | The application is controlled.        |
139| 16000013 | The application is controlled by EDM.       |
140| 16000050 | Internal error. |
141| 16000053 | The ability is not on the top of the UI. |
142| 16000055 | Installation-free timed out. |
143| 16200001 | The caller has been released. |
144
145For details about the error codes, see [Ability Error Codes](errorcode-ability.md).
146
147## UIExtensionContext.startAbilityForResult
148
149startAbilityForResult(want: Want, callback: AsyncCallback<AbilityResult>): void
150
151Starts an ability and obtains the result when the ability is terminated. This API uses an asynchronous callback to return the result. The following situations may be possible for a started ability:
152 - Normally, you can call [terminateSelfWithResult](js-apis-inner-application-uiAbilityContext.md#uiabilitycontextterminateselfwithresult) to terminate the ability. The result is returned to the caller.
153 - If an exception occurs, for example, the ability is killed, an error message, in which **resultCode** is **-1**, is returned to the caller.
154 - If different applications call this API to start an ability that uses the singleton mode and then call [terminateSelfWithResult](js-apis-inner-application-uiAbilityContext.md#uiabilitycontextterminateselfwithresult) to terminate the ability, the normal result is returned to the last caller, and an exception message, in which **resultCode** is **-1**, is returned to others.
155
156Observe the following when using this API:
157 - If an application running in the background needs to call this API to start an ability, it must have the **ohos.permission.START_ABILITIES_FROM_BACKGROUND** permission.
158 - If **exported** of the target ability is **false** in cross-application scenarios, the caller must have the **ohos.permission.START_INVISIBLE_ABILITY** permission.
159 - For details about the startup rules for the components in the stage model, see [Component Startup Rules (Stage Model)](../../application-models/component-startup-rules.md).
160
161**System capability**: SystemCapability.Ability.AbilityRuntime.Core
162
163**Parameters**
164
165| Name| Type| Mandatory| Description|
166| -------- | -------- | -------- | -------- |
167| want |[Want](js-apis-app-ability-want.md) | Yes| Want information about the target ability.|
168| callback | AsyncCallback<[AbilityResult](js-apis-inner-ability-abilityResult.md)> | Yes| Callback used to return the result.|
169
170**Error codes**
171
172| ID| Error Message|
173| ------- | -------------------------------- |
174| 16000001 | The specified ability does not exist. |
175| 16000002 | Incorrect ability type. |
176| 16000004 | Can not start invisible component. |
177| 16000005 | The specified process does not have the permission. |
178| 16000006 | Cross-user operations are not allowed. |
179| 16000008 | The crowdtesting application expires. |
180| 16000009 | An ability cannot be started or stopped in Wukong mode. |
181| 16000010 | The call with the continuation flag is forbidden. |
182| 16000011 | The context does not exist. |
183| 16000012 | The application is controlled.        |
184| 16000013 | The application is controlled by EDM.       |
185| 16000050 | Internal error. |
186| 16000053 | The ability is not on the top of the UI. |
187| 16000055 | Installation-free timed out. |
188| 16200001 | The caller has been released. |
189
190For details about the error codes, see [Ability Error Codes](errorcode-ability.md).
191
192## UIExtensionContext.startAbilityForResult
193
194startAbilityForResult(want: Want, options: StartOptions, callback: AsyncCallback<AbilityResult>): void
195
196Starts an ability with the start options specified and obtains the result when the ability is terminated. This API uses an asynchronous callback to return the result. The following situations may be possible for a started ability:
197 - Normally, you can call [terminateSelfWithResult](js-apis-inner-application-uiAbilityContext.md#uiabilitycontextterminateselfwithresult) to terminate the ability. The result is returned to the caller.
198 - If an exception occurs, for example, the ability is killed, an error message, in which **resultCode** is **-1**, is returned to the caller.
199 - If different applications call this API to start an ability that uses the singleton mode and then call [terminateSelfWithResult](js-apis-inner-application-uiAbilityContext.md#uiabilitycontextterminateselfwithresult) to terminate the ability, the normal result is returned to the last caller, and an exception message, in which **resultCode** is **-1**, is returned to others.
200
201Observe the following when using this API:
202 - If an application running in the background needs to call this API to start an ability, it must have the **ohos.permission.START_ABILITIES_FROM_BACKGROUND** permission.
203 - If **exported** of the target ability is **false** in cross-application scenarios, the caller must have the **ohos.permission.START_INVISIBLE_ABILITY** permission.
204 - For details about the startup rules for the components in the stage model, see [Component Startup Rules (Stage Model)](../../application-models/component-startup-rules.md).
205
206**System capability**: SystemCapability.Ability.AbilityRuntime.Core
207
208**Parameters**
209
210| Name| Type| Mandatory| Description|
211| -------- | -------- | -------- | -------- |
212| want |[Want](js-apis-app-ability-want.md) | Yes| Want information about the target ability.|
213| options | [StartOptions](js-apis-app-ability-startOptions.md) | Yes| Parameters used for starting the ability.|
214| callback | AsyncCallback<[AbilityResult](js-apis-inner-ability-abilityResult.md)> | Yes| Callback used to return the result.|
215
216**Error codes**
217
218| ID| Error Message|
219| ------- | -------------------------------- |
220| 16000001 | The specified ability does not exist. |
221| 16000004 | Can not start invisible component. |
222| 16000005 | The specified process does not have the permission. |
223| 16000006 | Cross-user operations are not allowed. |
224| 16000008 | The crowdtesting application expires. |
225| 16000009 | An ability cannot be started or stopped in Wukong mode. |
226| 16000011 | The context does not exist. |
227| 16000012 | The application is controlled.        |
228| 16000013 | The application is controlled by EDM.       |
229| 16000050 | Internal error. |
230| 16000053 | The ability is not on the top of the UI. |
231| 16000055 | Installation-free timed out. |
232| 16200001 | The caller has been released. |
233
234For details about the error codes, see [Ability Error Codes](errorcode-ability.md).
235
236## UIExtensionContext.startAbilityForResult
237
238startAbilityForResult(want: Want, options?: StartOptions): Promise<AbilityResult>
239
240Starts an ability and obtains the result when the ability is terminated. This API uses a promise to return the result. The following situations may be possible for a started ability:
241 - Normally, you can call [terminateSelfWithResult](js-apis-inner-application-uiAbilityContext.md#uiabilitycontextterminateselfwithresult) to terminate the ability. The result is returned to the caller.
242 - If an exception occurs, for example, the ability is killed, an error message, in which **resultCode** is **-1**, is returned to the caller.
243 - If different applications call this API to start an ability that uses the singleton mode and then call [terminateSelfWithResult](js-apis-inner-application-uiAbilityContext.md#uiabilitycontextterminateselfwithresult) to terminate the ability, the normal result is returned to the last caller, and an exception message, in which **resultCode** is **-1**, is returned to others.
244
245Observe the following when using this API:
246 - If an application running in the background needs to call this API to start an ability, it must have the **ohos.permission.START_ABILITIES_FROM_BACKGROUND** permission.
247 - If **exported** of the target ability is **false** in cross-application scenarios, the caller must have the **ohos.permission.START_INVISIBLE_ABILITY** permission.
248 - For details about the startup rules for the components in the stage model, see [Component Startup Rules (Stage Model)](../../application-models/component-startup-rules.md).
249
250**System capability**: SystemCapability.Ability.AbilityRuntime.Core
251
252**Parameters**
253
254| Name| Type| Mandatory| Description|
255| -------- | -------- | -------- | -------- |
256| want | [Want](js-apis-app-ability-want.md) | Yes| Want information about the target ability.|
257| options | [StartOptions](js-apis-app-ability-startOptions.md) | No| Parameters used for starting the ability.|
258
259
260**Return value**
261
262| Type| Description|
263| -------- | -------- |
264| Promise<[AbilityResult](js-apis-inner-ability-abilityResult.md)> | Promise used to return the result.|
265
266**Error codes**
267
268| ID| Error Message|
269| ------- | -------------------------------- |
270| 16000001 | The specified ability does not exist. |
271| 16000002 | Incorrect ability type. |
272| 16000004 | Can not start invisible component. |
273| 16000005 | The specified process does not have the permission. |
274| 16000006 | Cross-user operations are not allowed. |
275| 16000008 | The crowdtesting application expires. |
276| 16000009 | An ability cannot be started or stopped in Wukong mode. |
277| 16000010 | The call with the continuation flag is forbidden. |
278| 16000011 | The context does not exist. |
279| 16000012 | The application is controlled.        |
280| 16000013 | The application is controlled by EDM.       |
281| 16000050 | Internal error. |
282| 16000053 | The ability is not on the top of the UI. |
283| 16000055 | Installation-free timed out. |
284| 16200001 | The caller has been released. |
285
286For details about the error codes, see [Ability Error Codes](errorcode-ability.md).
287
288
289## UIExtensionContext.connectServiceExtensionAbility
290
291connectServiceExtensionAbility(want: Want, options: ConnectOptions): number
292
293Connects this ability to a ServiceExtensionAbility.
294
295**System capability**: SystemCapability.Ability.AbilityRuntime.Core
296
297**Parameters**
298
299| Name| Type| Mandatory| Description|
300| -------- | -------- | -------- | -------- |
301| want | [Want](js-apis-app-ability-want.md) | Yes| Want information for connecting to the ServiceExtensionAbility.|
302| options | [ConnectOptions](js-apis-inner-ability-connectOptions.md) | Yes| Instance of the callback function after the connection to the ServiceExtensionAbility is set up.|
303
304**Return value**
305
306| Type| Description|
307| -------- | -------- |
308| number | Result code of the connection.|
309
310**Error codes**
311
312| ID| Error Message|
313| ------- | -------------------------------- |
314| 16000001 | The specified ability does not exist. |
315| 16000002 | Incorrect ability type. |
316| 16000004 | Can not start invisible component. |
317| 16000005 | The specified process does not have the permission. |
318| 16000006 | Cross-user operations are not allowed. |
319| 16000008 | The crowdtesting application expires. |
320| 16000053 | The ability is not on the top of the UI. |
321| 16000055 | Installation-free timed out. |
322| 16000011 | The context does not exist.        |
323| 16000050 | Internal error. |
324
325For details about the error codes, see [Ability Error Codes](errorcode-ability.md).
326
327
328
329## UIExtensionContext.disconnectServiceExtensionAbility
330
331disconnectServiceExtensionAbility(connection: number): Promise\<void>
332
333Disconnects this ability from a ServiceExtensionAbility and after the successful disconnection, sets the remote object returned upon the connection to void. This API uses a promise to return the result.
334
335**System capability**: SystemCapability.Ability.AbilityRuntime.Core
336
337**Parameters**
338
339| Name| Type| Mandatory| Description|
340| -------- | -------- | -------- | -------- |
341| connection | number | Yes| Digital code of the connected ServiceExtensionAbility, that is, connectionId returned by **connectServiceExtensionAbility**.|
342
343**Return value**
344
345| Type| Description|
346| -------- | -------- |
347| Promise\<void> | Promise used to return the result.|
348
349**Error codes**
350
351| ID| Error Message|
352| ------- | -------------------------------- |
353| 16000011 | The context does not exist. |
354| 16000050 | Internal error. |
355
356For details about the error codes, see [Ability Error Codes](errorcode-ability.md).
357
358## UIExtensionContext.disconnectServiceExtensionAbility
359
360disconnectServiceExtensionAbility(connection: number, callback: AsyncCallback\<void>): void
361
362Disconnects this ability from a ServiceExtensionAbility and after the successful disconnection, sets the remote object returned upon the connection to void. This API uses an asynchronous callback to return the result.
363
364**System capability**: SystemCapability.Ability.AbilityRuntime.Core
365
366**Parameters**
367
368| Name| Type| Mandatory| Description|
369| -------- | -------- | -------- | -------- |
370| connection | number | Yes| Digital code of the connected ServiceExtensionAbility, that is, connectionId returned by **connectServiceExtensionAbility**.|
371| callback | AsyncCallback\<void> | Yes| Callback used to return the result.|
372
373**Error codes**
374
375| ID| Error Message|
376| ------- | -------------------------------- |
377| 16000011 | The context does not exist. |
378| 16000050 | Internal error. |
379
380For details about the error codes, see [Ability Error Codes](errorcode-ability.md).
381