1# @ohos.application.DistributedExtensionAbility (协同Extension) 2<!--Kit: Distributed Service Kit--> 3<!--Subsystem: DistributedSched--> 4<!--Owner: @hobbycao--> 5<!--Designer: @gsxiaowen--> 6<!--Tester: @hanjiawei--> 7<!--Adviser: @w_Machine_cc--> 8 9DistributedExtensionAbility模块提供分布式相关扩展能力,提供分布式创建、销毁、连接的生命周期回调。 10 11> **说明:** 12> 13> 本模块首批接口从API version 20开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 14> 15> 本模块接口仅可在Stage模型下使用。 16 17## 导入模块 18 19```ts 20import { DistributedExtensionAbility} from '@kit.DistributedServiceKit'; 21``` 22 23## DistributedExtensionAbility 24 25### 属性 26 27**系统能力**:SystemCapability.DistributedSched.AppCollaboration 28 29| 名称 | 类型 | 可读 | 可写 | 说明 | 30| ------- | ----------------------------- | ---- | ---- | ---------------------------------------------------------- | 31| context | DistributedExtensionContext | 是 | 否 | DistributedExtension的上下文环境,继承自ExtensionContext。 | 32 33### onCreate 34 35onCreate(want: Want): void 36 37Extension生命周期回调,在创建时回调,执行初始化业务逻辑操作。 38 39**系统能力**:SystemCapability.DistributedSched.AppCollaboration 40 41**参数:** 42 43| 参数名 | 类型 | 必填 | 说明 | 44| ----------| ---- | ---------------------------------------------------------------- | ---- | 45| want | [Want](../apis-ability-kit/js-apis-app-ability-want.md) | 是 | 当前Extension相关的Want类型信息,包括ability名称、bundle名称等。 | 46 47**示例:** 48 49```ts 50import { Want } from '@kit.AbilityKit'; 51import { DistributedExtensionAbility } from '@kit.DistributedServiceKit'; 52 53export default class DistributedExtension extends DistributedExtensionAbility { 54 onCreate(want: Want) { 55 console.info(`DistributedExtension Create ok`); 56 console.info(`DistributedExtension on Create want: ${JSON.stringify(want)}`); 57 console.info(`DistributedExtension Create end`); 58 } 59} 60``` 61 62### onCollaborate 63 64onCollaborate(wantParam: Record <string, Object>) : AbilityConstant.CollaborateResult 65 66多设备协作场景下返回协作结果的回调。 67 68**系统能力**:SystemCapability.DistributedSched.AppCollaboration 69 70**参数:** 71 72| 参数名 | 类型 | 必填 | 说明 | 73| --------- | ------ | ---- | -------------------------------------------------------------------------------------------------------------------------------------- | 74| wantParam | Record <string, Object> | 是 | want相关参数,仅支持key值取"ohos.extra.param.key.supportCollaborateIndex"。通过该key值可以可以获取到调用方传输的数据并进行相应的处理。 | 75 76**返回值:** 77 78| 类型 | 说明 | 79| ---------- | ---- | 80| [AbilityConstant.CollaborateResult](../apis-ability-kit/js-apis-app-ability-abilityConstant.md#collaborateresult18) | 协同方应用是否接受协同。 | 81 82**示例** 83 84```ts 85import { abilityConnectionManager, DistributedExtensionAbility } from '@kit.DistributedServiceKit'; 86import { AbilityConstant } from '@kit.AbilityKit'; 87 88export default class DistributedExtension extends DistributedExtensionAbility { 89 onCollaborate(wantParam: Record<string, Object>) { 90 console.info(`DistributedExtension onCollabRequest Accept to the result of Ability collaborate`); 91 let sessionId = -1; 92 const collaborationValues = wantParam["CollaborationValues"] as abilityConnectionManager.CollaborationValues; 93 if (collaborationValues == undefined) { 94 return sessionId; 95 } 96 console.info(`onCollab, collaborationValues: ${JSON.stringify(collaborationValues)}`); 97 return AbilityConstant.CollaborateResult.ACCEPT; 98 } 99} 100``` 101 102### onDestroy 103 104onDestroy(): void 105 106Extension生命周期回调,在销毁时回调,执行资源清理等操作。 107 108**系统能力**:SystemCapability.DistributedSched.AppCollaboration 109 110**示例:** 111 112```ts 113import { DistributedExtensionAbility } from '@kit.DistributedServiceKit'; 114 115export default class DistributedExtension extends DistributedExtensionAbility { 116 onDestroy() { 117 console.info('DistributedExtension onDestroy ok'); 118 } 119} 120``` 121