• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# WindowExtensionContext
2
3WindowExtensionContext模块是WindowExtensionAbility的上下文环境,继承自[ExtensionContext](js-apis-inner-application-extensionContext.md)。
4
5WindowExtensionContext模块提供[WindowExtensionAbility](js-apis-application-windowExtensionAbility.md)具有的能力,包括启动Ability。
6
7> **说明:**
8>
9>  - 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
10>
11>  - 本模块接口为系统接口。
12>
13>  - 本模块接口仅可在Stage模型下使用。
14
15## 使用说明
16
17在使用WindowExtensionContext的功能前,需要通过WindowExtensionAbility子类实例获取。
18
19```ts
20  import WindowExtensionAbility from '@ohos.application.WindowExtensionAbility';
21
22  let context;
23  class WindowExtAbility extends WindowExtensionAbility {
24    onConnect() {
25      context = this.context; // 获取WindowExtensionContext
26    }
27  }
28```
29
30## WindowExtensionContext.startAbility
31
32startAbility(want: Want, options: StartOptions, callback: AsyncCallback<void>): void
33
34启动Ability,使用callback异步回调。
35
36**系统能力**:SystemCapability.WindowManager.WindowManager.Core
37
38**参数:**
39
40| 参数名 | 类型 | 必填 | 说明 |
41| -------- | -------- | -------- | -------- |
42| want | [Want](js-apis-application-want.md)  | 是 | 启动Ability的want信息。 |
43| options | [StartOptions](js-apis-app-ability-startOptions.md) | 是 | 启动Ability所携带的参数。 |
44| callback | AsyncCallback<void> | 是 | callback形式返回启动结果。 |
45
46**示例:**
47
48  ```ts
49  let want = {
50    bundleName: 'com.example.myapplication',
51    abilityName: 'MainAbility'
52  };
53  let options = {
54    windowMode: 102
55  };
56
57  try {
58    this.context.startAbility(want, options, (error) => {
59      if (error.code) {
60        // 处理业务逻辑错误
61        console.log('startAbility failed, error.code: ' + JSON.stringify(error.code) +
62          ' error.message: ' + JSON.stringify(error.message));
63        return;
64      }
65      // 执行正常业务
66      console.log('startAbility succeed');
67    });
68  } catch (paramError) {
69    // 处理入参错误异常
70    console.error('error.code: ' + JSON.stringify(paramError.code) +
71      ' error.message: ' + JSON.stringify(paramError.message));
72  }
73  ```
74
75## WindowExtensionContext.startAbility
76
77startAbility(want: Want, options?: StartOptions): Promise\<void>
78
79启动Ability,使用Promise异步回调。
80
81**系统能力**:SystemCapability.WindowManager.WindowManager.Core
82
83**参数:**
84
85| 参数名 | 类型 | 必填 | 说明 |
86| -------- | -------- | -------- | -------- |
87| want | [Want](js-apis-application-want.md)  | 是 | Want类型参数,传入需要启动的ability的信息,如Ability名称,Bundle名称等。 |
88| options | [StartOptions](js-apis-app-ability-startOptions.md) | 否 | 启动Ability所携带的参数。 |
89
90**返回值:**
91
92| 类型 | 说明 |
93| -------- | -------- |
94| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
95
96**示例:**
97
98  ```ts
99  let want = {
100    bundleName: 'com.example.myapp',
101    abilityName: 'MainAbility'
102  };
103  let options = {
104  	windowMode: 102,
105  };
106
107  try {
108    this.context.startAbility(want, options)
109      .then((data) => {
110        // 执行正常业务
111        console.log('startAbility succeed');
112      })
113      .catch((error) => {
114        // 处理业务逻辑错误
115        console.log('startAbility failed, error.code: ' + JSON.stringify(error.code) +
116          ' error.message: ' + JSON.stringify(error.message));
117      });
118  } catch (paramError) {
119    // 处理入参错误异常
120    console.error('error.code: ' + JSON.stringify(paramError.code) +
121      ' error.message: ' + JSON.stringify(paramError.message));
122  }
123  ```