• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @ohos.application.DistributedExtensionAbility (Distributed Extension)
2
3The **DistributedExtensionAbility** module provides distributed extension capabilities and lifecycle callbacks for distributed ability creation, destruction, and connection.
4
5> **NOTE**
6>
7> The initial APIs of this module are supported since API version 20. Newly added APIs will be marked with a superscript to indicate their earliest API version.
8>
9> The APIs of this module can be used only in the stage model.
10
11## Modules to Import
12
13```ts
14import { DistributedExtensionAbility} from '@kit.DistributedServiceKit';
15```
16
17## Attributes
18
19**System capability**: SystemCapability.Ability.AbilityRuntime.Core
20
21| Name   | Type                         | Readable| Writable| Description                                                      |
22| ------- | ----------------------------- | ---- | ---- | ---------------------------------------------------------- |
23| context | DistributedExtensionContext() | Yes  | No  | Context of the **DistributedExtension**. This context inherits from **ExtensionContext**.|
24
25## DistributedExtensionAbility.onCreate
26
27onCreate(want: Want): void
28
29Callback invoked to initialize the service logic when a **DistributedExtensionAbility** instance is created.
30
31**System capability**: SystemCapability.Ability.AbilityRuntime.Core
32
33**Parameters**
34
35| Name    | Type| Mandatory                                                            | Description|
36| ----------| ---- | ---------------------------------------------------------------- | ---- |
37| want      | [Want](../apis-ability-kit/js-apis-app-ability-want.md) | Yes  | Want information related to the **DistributedExtensionAbility** instance, including the ability name and bundle name.|
38
39**Example**
40
41```ts
42import { Want } from '@kit.AbilityKit';
43import { DistributedExtensionAbility } from '@kit.DistributedServiceKit';
44
45export default class DistributedExtension extends DistributedExtensionAbility {
46  onCreate(want: Want) {
47    console.info(`DistributedExtension Create ok`);
48    console.info(`DistributedExtension on Create want: ${JSON.stringify(want)}`);
49    console.info(`DistributedExtension Create end`);
50  }
51}
52```
53
54## DistributedExtensionAbility.onCollaborate
55
56onCollaborate(wantParam: Record <string, Object>) : AbilityConstant.CollaborateResult
57
58Callback invoked to return the collaboration result in multi-device collaboration scenarios.
59
60**System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore
61
62**Parameters**
63
64| Name   | Type  | Mandatory| Description                                                                                                                                  |
65| --------- | ------ | ---- | -------------------------------------------------------------------------------------------------------------------------------------- |
66| wantParam | Record <string, Object> | Yes  | Want parameter, which supports only the key **"ohos.extra.param.key.supportCollaborateIndex"**. The key can be used to obtain the data passed by the caller and perform corresponding processing.|
67
68**Return value**
69
70| Type| Description|
71| ---------- | ---- |
72| [AbilityConstant.CollaborateResult](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-ability-kit/js-apis-app-ability-abilityConstant.md#collaborateresult) | Collaboration result, that is, whether the target application accepts the collaboration request.|
73
74**Example**
75
76```ts
77import { abilityConnectionManager, DistributedExtensionAbility } from '@kit.DistributedServiceKit';
78import { AbilityConstant } from '@kit.AbilityKit';
79
80export default class DistributedExtension extends DistributedExtensionAbility {
81  onCollaborate(wantParam: Record<string, Object>) {
82    console.info(`DistributedExtension onCollabRequest Accept to the result of Ability collaborate`);
83    let sessionId = -1;
84    const collaborationValues = wantParam["CollaborationValues"] as abilityConnectionManager.CollaborationValues;
85    if (collaborationValues == undefined) {
86      return sessionId;
87    }
88    console.info(`onCollab, collaborationValues: ${JSON.stringify(collaborationValues)}`);
89    return AbilityConstant.CollaborateResult.ACCEPT;
90  }
91}
92```
93
94## DistributedExtensionAbility.onDestroy
95
96onDestroy(): void
97
98Callback invoked to clear resources when a **ServiceExtensionAbility** instance is destroyed.
99
100**System capability**: SystemCapability.Ability.AbilityRuntime.Core
101
102**Example**
103
104```ts
105import { DistributedExtensionAbility } from '@kit.DistributedServiceKit';
106
107export default class DistributedExtension extends DistributedExtensionAbility {
108  onDestroy() {
109    console.info('DistributedExtension onDestroy ok');
110  }
111}
112```
113