• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# ConnectOptions
2<!--Kit: Ability Kit-->
3<!--Subsystem: Ability-->
4<!--Owner: @yewei0794-->
5<!--Designer: @jsjzju-->
6<!--Tester: @lixueqing513-->
7<!--Adviser: @huipeizi-->
8
9在连接指定的后台服务时作为入参,用于接收连接过程中的状态变化,如作为[connectServiceExtensionAbility](js-apis-inner-application-uiAbilityContext.md#connectserviceextensionability)的入参,连接指定的ServiceExtensionAbility。
10
11> **说明:**
12>
13> 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
14
15## 导入模块
16
17```ts
18import { common } from '@kit.AbilityKit';
19```
20
21## ConnectOptions
22
23### onConnect
24
25onConnect(elementName: ElementName, remote: rpc.IRemoteObject): void
26
27建立连接时的回调函数。
28
29**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
30
31**参数:**
32
33| 参数名       | 类型                     | 必填   | 说明            |
34| -------- | ---------------------- | ---- | ------------- |
35| elementName | [ElementName](js-apis-bundleManager-elementName.md) | 是    | Ability的elementName。 |
36| remote | [rpc.IRemoteObject](../apis-ipc-kit/js-apis-rpc.md#iremoteobject) | 是    | IRemoteObject实例。 |
37
38**示例:**
39
40```ts
41import { UIAbility, common, Want, AbilityConstant } from '@kit.AbilityKit';
42import { bundleManager } from '@kit.AbilityKit';
43import { rpc } from '@kit.IPCKit';
44
45let connectWant: Want = {
46  bundleName: 'com.example.myapp',
47  abilityName: 'MyAbility'
48};
49
50let connectOptions: common.ConnectOptions = {
51  onConnect(elementName: bundleManager.ElementName, remote: rpc.IRemoteObject) {
52    console.log(`onConnect elementName: ${elementName}`);
53  },
54  onDisconnect(elementName: bundleManager.ElementName) {
55    console.log(`onDisconnect elementName: ${elementName}`);
56  },
57  onFailed(code: number) {
58    console.error(`onFailed code: ${code}`);
59  }
60};
61
62class EntryAbility extends UIAbility {
63  onCreate(want: Want, launchParam: AbilityConstant.LaunchParam) {
64    let connection: number = this.context.connectServiceExtensionAbility(connectWant, connectOptions);
65  }
66}
67```
68
69### onDisconnect
70
71onDisconnect(elementName: ElementName): void
72
73断开连接时的回调函数。
74
75**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
76
77**参数:**
78
79| 参数名       | 类型                     | 必填   | 说明            |
80| -------- | ---------------------- | ---- | ------------- |
81| elementName | [ElementName](js-apis-bundleManager-elementName.md) | 是    | Ability的elementName。 |
82
83**示例:**
84
85```ts
86import { UIAbility, common, Want, AbilityConstant } from '@kit.AbilityKit';
87import { bundleManager } from '@kit.AbilityKit';
88import { rpc } from '@kit.IPCKit';
89
90let connectWant: Want = {
91  bundleName: 'com.example.myapp',
92  abilityName: 'MyAbility'
93};
94
95let connectOptions: common.ConnectOptions = {
96  onConnect(elementName: bundleManager.ElementName, remote: rpc.IRemoteObject) {
97    console.log(`onConnect elementName: ${elementName}`);
98  },
99  onDisconnect(elementName: bundleManager.ElementName) {
100    console.log(`onDisconnect elementName: ${elementName}`);
101  },
102  onFailed(code: number) {
103    console.error(`onFailed code: ${code}`);
104  }
105};
106
107class EntryAbility extends UIAbility {
108  onCreate(want: Want, launchParam: AbilityConstant.LaunchParam) {
109    let connection: number = this.context.connectServiceExtensionAbility(connectWant, connectOptions);
110  }
111}
112```
113
114### onFailed
115
116onFailed(code: number): void
117
118连接失败时的回调函数。
119
120**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
121
122**参数:**
123
124| 参数名       | 类型                     | 必填   | 说明            |
125| -------- | ---------------------- | ---- | ------------- |
126| code | number | 是    | 连接指定Ability返回的结果code。<br>值为0表示连接成功,值为-1表示参数错误,值为-2表示未找到对应Ability。 |
127
128**示例:**
129
130```ts
131import { UIAbility, common, Want, AbilityConstant } from '@kit.AbilityKit';
132import { bundleManager } from '@kit.AbilityKit';
133import { rpc } from '@kit.IPCKit';
134
135let connectWant: Want = {
136  bundleName: 'com.example.myapp',
137  abilityName: 'MyAbility'
138};
139
140let connectOptions: common.ConnectOptions = {
141  onConnect(elementName: bundleManager.ElementName, remote: rpc.IRemoteObject) {
142    console.log(`onConnect elementName: ${elementName}`);
143  },
144  onDisconnect(elementName: bundleManager.ElementName) {
145    console.log(`onDisconnect elementName: ${elementName}`);
146  },
147  onFailed(code: number) {
148    console.error(`onFailed code: ${code}`);
149  }
150};
151
152class EntryAbility extends UIAbility {
153  onCreate(want: Want, launchParam: AbilityConstant.LaunchParam) {
154    let connection: number = this.context.connectServiceExtensionAbility(connectWant, connectOptions);
155  }
156}
157```
158