• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# WindowExtensionContext (System API)
2
3The **WindowExtensionContext** module, inherited from [ExtensionContext](../apis-ability-kit/js-apis-inner-application-extensionContext.md), is the context environment of the WindowExtensionAbility.
4
5The **WindowExtensionContext** module provides the capabilities of the [WindowExtensionAbility](js-apis-application-windowExtensionAbility-sys.md), including starting the ability.
6
7> **NOTE**
8>
9>  - The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version.
10>
11>  - The APIs provided by this module are system APIs.
12>
13>  - The APIs of this module can be used only in the stage model.
14
15## Usage
16
17Before using the **WindowExtensionContext** module, you must define a child class that inherits from **WindowExtensionAbility**.
18
19```ts
20import WindowExtensionAbility from '@ohos.application.WindowExtensionAbility';
21import WindowExtensionContext from 'application/WindowExtensionContext';
22
23let context: WindowExtensionContext | null = null;
24
25class WindowExtAbility extends WindowExtensionAbility {
26  onConnect() {
27    context = this.context; // Obtain a WindowExtensionContext instance.
28  }
29}
30```
31
32## WindowExtensionContext.startAbility
33
34startAbility(want: Want, options: StartOptions, callback: AsyncCallback<void>): void
35
36Starts an ability. This API uses an asynchronous callback to return the result.
37
38**System capability**: SystemCapability.WindowManager.WindowManager.Core
39
40**Parameters**
41
42| Name| Type| Mandatory| Description|
43| -------- | -------- | -------- | -------- |
44| want | [Want](../apis-ability-kit/js-apis-app-ability-want.md)  | Yes| Want information about the target ability.|
45| options | [StartOptions](../apis-ability-kit/js-apis-app-ability-startOptions.md) | Yes| Parameters used for starting the ability.|
46| callback | AsyncCallback<void> | Yes| Callback used to return the result.|
47
48**Example**
49
50```ts
51import WindowExtensionAbility from '@ohos.application.WindowExtensionAbility';
52import { BusinessError } from '@ohos.base';
53import Want from '@ohos.app.ability.Want';
54import StartOptions from '@ohos.app.ability.StartOptions';
55
56class WindowExtAbility extends WindowExtensionAbility {
57
58  onConnect() {
59    let want: Want = {
60      bundleName: 'com.example.myapplication',
61      abilityName: 'MainAbility'
62    };
63    let options: StartOptions = {
64      windowMode: 102
65    };
66
67    try {
68      this.context.startAbility(want, options, (error: BusinessError) => {
69        let message = (error as BusinessError).message;
70        let errCode = (error as BusinessError).code;
71        if (errCode) {
72          // Process service logic errors.
73          console.error(`startAbility failed, error.code: ${errCode}, error.message: ${message}`);
74          return;
75        }
76        // Carry out normal service processing.
77        console.log('startAbility succeed');
78      });
79    } catch (paramError) {
80      // Process input parameter errors.
81      let message = (paramError as BusinessError).message;
82      let errCode = (paramError as BusinessError).code;
83      console.error(`error.code: ${errCode}, error.message: ${message}`);
84    }
85  }
86}
87```
88
89## WindowExtensionContext.startAbility
90
91startAbility(want: Want, options?: StartOptions): Promise\<void>
92
93Starts an ability. This API uses a promise to return the result.
94
95**System capability**: SystemCapability.WindowManager.WindowManager.Core
96
97**Parameters**
98
99| Name| Type| Mandatory| Description|
100| -------- | -------- | -------- | -------- |
101| want | [Want](../apis-ability-kit/js-apis-app-ability-want.md)  | Yes| Want information about the target ability, such as the ability name and bundle name.|
102| options | [StartOptions](../apis-ability-kit/js-apis-app-ability-startOptions.md) | No| Parameters used for starting the ability.|
103
104**Return value**
105
106| Type| Description|
107| -------- | -------- |
108| Promise&lt;void&gt; | Promise that returns no value.|
109
110**Example**
111
112```ts
113import WindowExtensionAbility from '@ohos.application.WindowExtensionAbility';
114import { BusinessError } from '@ohos.base';
115import Want from '@ohos.app.ability.Want';
116import StartOptions from '@ohos.app.ability.StartOptions';
117
118class WindowExtAbility extends WindowExtensionAbility {
119
120  onConnect() {
121    let want: Want = {
122      bundleName: 'com.example.myapp',
123      abilityName: 'MainAbility'
124    };
125    let options: StartOptions = {
126      windowMode: 102,
127    };
128
129    try {
130      this.context.startAbility(want, options)
131        .then(() => {
132          // Carry out normal service processing.
133          console.log('startAbility succeed');
134        })
135        .catch((error: BusinessError) => {
136          // Process service logic errors.
137          let message = (error as BusinessError).message;
138          let errCode = (error as BusinessError).code;
139          console.error(`startAbility failed, error.code: ${errCode}, error.message: ${message}`);
140        });
141    } catch (paramError) {
142      // Process input parameter errors.
143      let message = (paramError as BusinessError).message;
144      let errCode = (paramError as BusinessError).code;
145      console.error(`error.code: ${errCode}, error.message: ${message}`);
146    }
147  }
148}
149```
150