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