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