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