• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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