• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# ServiceExtAbilityContext
2
3
4> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
5>
6> 本模块首批接口从API version 9开始支持。API 9当前为Canary版本,仅供使用,不保证接口可稳定调用。
7
8
9## 属性
10
11**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
12
13| 名称 | 参数类型 | 可读 | 可写 | 说明 |
14| -------- | -------- | -------- | -------- | -------- |
15| extensionAbilityInfo | ExtensionAbilityInfo | 是 | 否 | ExtensionAbility信息。  |
16
17
18## startAbility
19
20startAbility(want: Want, callback: AsyncCallback<void>): void
21
22启动Ability。
23
24**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
25
26**参数**:
27
28| 参数名 | 类型 | 必填 | 说明 |
29| -------- | -------- | -------- | -------- |
30| want | [Want](js-apis-featureAbility.md#Want) | 是 | 启动Ability的want信息。 |
31| callback | AsyncCallback<void> | 是 | callback形式返回启动结果。 |
32
33**示例**:
34
35```js
36var want = {
37  "deviceId": "",
38  "bundleName": "com.extreme.test",
39  "abilityName": "com.extreme.test.MainAbility"
40};
41this.context.startAbility(want, (error) => {
42    console.log("error.code = " + error.code)
43})
44```
45
46## startAbility
47
48startAbility(want: Want, options: StartOptions, callback: AsyncCallback<void>): void
49
50启动Ability(callback形式)。
51
52**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
53
54**参数**:
55
56| 参数名 | 类型 | 必填 | 说明 |
57| -------- | -------- | -------- | -------- |
58| want | [Want](js-apis-featureAbility.md#Want)  | 是 | 启动Ability的want信息。 |
59| options | StartOptions | 是 | 启动Ability所携带的参数。 |
60| callback | AsyncCallback<void> | 是 | callback形式返回启动结果。 |
61
62**示例**:
63
64```js
65var want = {
66  "deviceId": "",
67  "bundleName": "com.extreme.test",
68  "abilityName": "com.extreme.test.MainAbility"
69};
70var options = {
71  windowMode: 0,
72};
73this.context.startAbility(want, options, (error) => {
74    console.log("error.code = " + error.code)
75})
76```
77
78
79## startAbility
80
81startAbility(want: Want, options: StartOptions): Promise<void>
82
83启动Ability(Promise形式)。
84
85**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
86
87**参数**:
88
89| 参数名 | 类型 | 必填 | 说明 |
90| -------- | -------- | -------- | -------- |
91| want | [Want](js-apis-featureAbility.md#Want) | 是 | 启动Ability的want信息。 |
92| options | StartOptions | 是 | 启动Ability所携带的参数。 |
93
94**返回值**:
95
96| 类型 | 说明 |
97| -------- | -------- |
98| Promise<void> | Promise形式返回启动结果。 |
99
100**示例**:
101```js
102var want = {
103  "deviceId": "",
104  "bundleName": "com.extreme.test",
105  "abilityName": "com.extreme.test.MainAbility"
106};
107var options = {
108  windowMode: 0,
109};
110this.context.startAbility(want, options)
111.then((data) => {
112    console.log('Operation successful.')
113}).catch((error) => {
114    console.log('Operation failed.');
115})
116```
117
118## startAbilityWithAccount
119
120startAbilityWithAccount(want: Want, accountId: number, callback: AsyncCallback\<void>): void
121
122通过账户启动Ability(callback形式)。
123
124**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
125
126**参数**:
127
128| 参数名 | 类型 | 必填 | 说明 |
129| -------- | -------- | -------- | -------- |
130| want | [Want](js-apis-featureAbility.md#Want) | 是 | 启动Ability的want信息。 |
131| accountId | number                   | 是 | 账户ID。                  |
132| callback | AsyncCallback&lt;void&gt; | 是 | callback形式返回启动结果。 |
133
134**示例**:
135
136```js
137var want = {
138  "deviceId": "",
139  "bundleName": "com.extreme.test",
140  "abilityName": "com.extreme.test.MainAbility"
141};
142var accountId = 11;
143this.context.startAbility(want, accountId, (error) => {
144    console.log("error.code = " + error.code)
145})
146```
147
148## startAbilityWithAccount
149
150startAbilityWithAccount(want: Want, accountId: number, options: StartOptions, callback: AsyncCallback\<void>): void
151
152通过账户启动Ability(callback形式)。
153
154**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
155
156**参数**:
157
158| 参数名 | 类型 | 必填 | 说明 |
159| -------- | -------- | -------- | -------- |
160| want | [Want](js-apis-featureAbility.md#Want)  | 是 | 启动Ability的want信息。 |
161| accountId | number                   | 是 | 账户ID。                  |
162| options | StartOptions | 是 | 启动Ability所携带的参数。 |
163| callback | AsyncCallback&lt;void&gt; | 是 | callback形式返回启动结果。 |
164
165**示例**:
166
167```js
168var want = {
169  "deviceId": "",
170  "bundleName": "com.extreme.test",
171  "abilityName": "com.extreme.test.MainAbility"
172};
173var options = {
174  windowMode: 0,
175};
176var accountId = 11;
177this.context.startAbility(want, accountId, options, (error) => {
178    console.log("error.code = " + error.code)
179})
180```
181
182
183## startAbilityWithAccount
184
185startAbilityWithAccount(want: Want, accountId: number, options?: StartOptions): Promise\<void>
186
187通过账户启动Ability(Promise形式)。
188
189**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
190
191**参数**:
192
193| 参数名 | 类型 | 必填 | 说明 |
194| -------- | -------- | -------- | -------- |
195| want | [Want](js-apis-featureAbility.md#Want) | 是 | 启动Ability的want信息。 |
196| accountId | number                   | 是 | 账户ID。                  |
197| options | StartOptions | 否 | 启动Ability所携带的参数。 |
198
199**返回值**:
200
201| 类型 | 说明 |
202| -------- | -------- |
203| Promise&lt;void&gt; | Promise形式返回启动结果。 |
204
205**示例**:
206```js
207var want = {
208  "deviceId": "",
209  "bundleName": "com.extreme.test",
210  "abilityName": "com.extreme.test.MainAbility"
211};
212var options = {
213  windowMode: 0,
214};
215var accountId = 11;
216this.context.startAbility(want, accountId, options)
217.then((data) => {
218    console.log('Operation successful.')
219}).catch((error) => {
220    console.log('Operation failed.');
221})
222```
223
224## terminateSelf
225
226terminateSelf(callback: AsyncCallback&lt;void&gt;): void
227
228停止Ability自身(callback形式)。
229
230**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
231
232**参数**:
233
234| 参数名 | 类型 | 必填 | 说明 |
235| -------- | -------- | -------- | -------- |
236| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数,返回接口调用是否成功的结果。 |
237
238**示例**:
239
240```js
241this.context.terminateSelf((err) => {
242    console.log('terminateSelf result:' + JSON.stringify(err));
243});
244```
245
246## terminateSelf
247
248terminateSelf(): Promise&lt;void&gt;
249
250停止Ability自身(Promise形式)。
251
252**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
253
254**返回值**:
255
256| 类型 | 说明 |
257| -------- | -------- |
258| Promise&lt;void&gt; | 返回一个Promise,包含接口的结果。 |
259
260**示例**:
261
262```js
263this.context.terminateSelf(want).then((data) => {
264    console.log('success:' + JSON.stringify(data));
265}).catch((error) => {
266    console.log('failed:' + JSON.stringify(error));
267});
268```
269
270
271## connectAbility
272
273connectAbility(want: Want, options: ConnectOptions): number
274
275使用AbilityInfo.AbilityType.SERVICE模板将当前能力连接到一个能力。
276
277**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
278
279**参数**:
280
281| 参数名 | 类型 | 必填 | 说明 |
282| -------- | -------- | -------- | -------- |
283| want | [Want](js-apis-featureAbility.md#Want) | 是 | 启动Ability的want信息。 |
284| options | ConnectOptions | 是 | 连接的远端对象实例 |
285
286**返回值**:
287
288| 类型 | 说明 |
289| -------- | -------- |
290| number | 连接Ability的代码 |
291
292**示例**:
293```js
294var want = {
295  "deviceId": "",
296  "bundleName": "com.extreme.test",
297  "abilityName": "com.extreme.test.MainAbility"
298}
299var options = {
300  onConnect: (elementName, remote) => {
301    console.log('connectAbility onConnect, elementName: ' + elementName + ', remote: ' remote)
302  },
303  onDisconnect: (elementName) => {
304    console.log('connectAbility onDisconnect, elementName: ' + elementName)
305  },
306  onFailed: (code) => {
307    console.log('connectAbility onFailed, code: ' + code)
308  }
309}
310this.context.connectAbility(want, options) {
311  console.log('code: ' + code)
312}
313```
314
315## connectAbilityWithAccount
316
317connectAbilityWithAccount(want: Want, accountId: number, options: ConnectOptions): number
318
319使用AbilityInfo.AbilityType.SERVICE模板和账户ID将当前能力连接到一个能力。
320
321**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
322
323**参数**:
324
325| 参数名 | 类型 | 必填 | 说明 |
326| -------- | -------- | -------- | -------- |
327| want | [Want](js-apis-featureAbility.md#Want) | 是 | 启动Ability的want信息。 |
328| accountId | number | 是 | 账户ID |
329| options | ConnectOptions | 是 | 连接的远端对象实例 |
330
331**返回值**:
332
333| 类型 | 说明 |
334| -------- | -------- |
335| number | 连接Ability的代码 |
336
337**示例**:
338```js
339var want = {
340  "deviceId": "",
341  "bundleName": "com.extreme.test",
342  "abilityName": "com.extreme.test.MainAbility"
343}
344var accountId = 111;
345var options = {
346  onConnect: (elementName, remote) => {
347    console.log('connectAbility onConnect, elementName: ' + elementName + ', remote: ' remote)
348  },
349  onDisconnect: (elementName) => {
350    console.log('connectAbility onDisconnect, elementName: ' + elementName)
351  },
352  onFailed: (code) => {
353    console.log('connectAbility onFailed, code: ' + code)
354  }
355}
356this.context.connectAbility(want, accountId, options) {
357  console.log('code: ' + code)
358}
359```
360
361## disconnectAbility
362
363disconnectAbility(connection: number, callback:AsyncCallback\<void>): void
364
365断开Ability连接(callback形式)。
366
367**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
368
369**参数**:
370
371| 参数名 | 类型 | 必填 | 说明 |
372| -------- | -------- | -------- | -------- |
373| connection | number | 是 | 连接的Ability的编号。 |
374| callback | AsyncCallback&lt;void&gt; | 是 | 断开Ability连接的回调函数。 |
375
376**示例**:
377
378```js
379var connection = 111;
380this.context.disconnectAbility(connection, () => {
381  console.log('disconnection')
382})
383```
384
385## disconnectAbility
386
387disconnectAbility(connection: number): Promise\<void>
388
389断开Ability连接(Promise形式)。
390
391**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
392
393**参数**:
394
395| 参数名 | 类型 | 必填 | 说明 |
396| -------- | -------- | -------- | -------- |
397| connection | number | 是 | 连接的Ability的编号。 |
398
399**返回值**:
400
401| 类型 | 说明 |
402| -------- | -------- |
403| Promise&lt;void&gt; | 返回一个Promise。 |
404
405**示例**:
406
407```js
408var connection = 111;
409this.context.disconnectAbility(connection).then(() => {
410  console.log('disconnected successfully')
411}).catch((err) => {
412  console.log('disconnected failed')
413})
414```