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