1# @ohos.app.ability.UIServiceExtensionAbility (UIServiceExtensionAbility)(系统接口) 2 3UIServiceExtensionAbility提供浮窗组件相关扩展能力,继承自[ExtensionAbility](js-apis-app-ability-extensionAbility.md)。主要用于向三方应用提供带界面的服务。 4 5 6> **说明:** 7> 8> 本模块首批接口从API version 13开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 9> 10> 本模块接口仅可在Stage模型下使用。 11> 12> 本模块接口需要在主线程中使用,不要在Worker、TaskPool等子线程中使用。 13> 14> 本模块为系统接口。 15 16## 导入模块 17 18```ts 19import { UIServiceExtensionAbility } from '@kit.AbilityKit'; 20``` 21 22 23## 属性 24 25**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 26 27**系统接口**:此接口为系统接口。 28 29| 名称 | 类型 | 只读 | 可选 | 说明 | 30| -------- | -------- | -------- | -------- | -------- | 31| context | [UIServiceExtensionContext](js-apis-inner-application-uiserviceExtensionContext-sys.md) | 是 | 否 | [UIServiceExtension](js-apis-app-ability-uiServiceExtensionAbility-sys.md)的上下文环境,继承自[ExtensionContext](js-apis-inner-application-extensionContext.md)。 | 32 33 34## UIServiceExtensionAbility.onCreate 35 36onCreate(want: Want): void 37 38[UIServiceExtensionContext](js-apis-inner-application-uiserviceExtensionContext-sys.md) 生命周期创建接口,执行初始化业务逻辑操作。 39 40**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 41 42**系统接口**:此接口为系统接口。 43 44**参数:** 45 46| 参数名 | 类型 | 只读 | 可选 | 说明 | 47| -------- | -------- | -------- | -------- | -------- | 48| want | [Want](js-apis-app-ability-want.md) | 是 | 否| 当前[UIServiceExtension](js-apis-app-ability-uiServiceExtensionAbility-sys.md)相关的 [Want](js-apis-app-ability-want.md) 类型信息,包括Ability名称、Bundle名称等。 | 49 50**示例:** 51 52```ts 53import { UIServiceExtensionAbility, Want } from '@kit.AbilityKit'; 54 55class UIServiceExt extends UIServiceExtensionAbility { 56 // 创建UIServiceExtensionAbility 57 onCreate(want: Want) { 58 console.log(`onCreate, want: ${want.abilityName}`); 59 } 60} 61``` 62 63 64## UIServiceExtensionAbility.onRequest 65 66onRequest(want: Want, startId: number): void 67 68请求拉起[UIServiceExtension](js-apis-app-ability-uiServiceExtensionAbility-sys.md)服务处理。如果是[startAbility](js-apis-inner-application-uiAbilityContext.md#uiabilitycontextstartability) 或者[startUIServiceExtensionAbility](js-apis-inner-application-uiAbilityContext.md#uiabilitycontextstartuiserviceextensionability14)拉起的服务,会在[onCreate](#uiserviceextensionabilityoncreate)之后回调。每次拉起服务都会回调,startId会递增。 69 70**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 71 72**系统接口**:此接口为系统接口。 73 74**参数:** 75 76| 参数名 | 类型 | 只读 | 可选 | 说明 | 77| -------- | -------- | -------- | -------- | -------- | 78| want | [Want](js-apis-app-ability-want.md) | 是 | 否 | 当前[UIServiceExtension](js-apis-app-ability-uiServiceExtensionAbility-sys.md)相关的 [Want](js-apis-app-ability-want.md) 类型信息,包括Ability名称、Bundle名称等。 | 79| startId | number | 是 | 返回浮窗拉起次数。首次拉起初始值返回1,多次之后自动递增。 | 80 81**示例:** 82 83```ts 84import { UIServiceExtensionAbility, Want} from '@kit.AbilityKit'; 85 86class UIServiceExt extends UIServiceExtensionAbility { 87 onRequest(want: Want, startId: number) { 88 console.log('onRequest, want:' + want.abilityName + ', startId:' + startId); 89 } 90} 91``` 92 93 94## UIServiceExtensionAbility.onConnect 95 96onConnect(want: Want, proxy: UIServiceHostProxy): void 97 98[UIServiceExtension](js-apis-app-ability-uiServiceExtensionAbility-sys.md)生命周期回调。如果是[connectUIServiceExtensionAbility()](js-apis-inner-application-uiExtensionContext.md#uiextensioncontextconnectuiserviceextensionability13)拉起的服务,会在[onCreate()](#uiserviceextensionabilityoncreate)之后回调。接收一个[UIServiceHostProxy](js-apis-inner-application-uiservicehostproxy-sys.md)对象,用于客户端和服务端进行通信。 99 100**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 101 102**系统接口**:此接口为系统接口。 103 104**参数:** 105 106| 参数名 | 类型 | 只读 | 可选 | 说明 | 107| -------- | -------- | -------- | -------- | -------- | 108| want | [Want](js-apis-app-ability-want.md)| 是 | 否| 当前[UIServiceExtension](js-apis-app-ability-uiServiceExtensionAbility-sys.md)相关的[Want](js-apis-app-ability-want.md)类型信息,包括Ability名称、Bundle名称等。 | 109| proxy | [UIServiceHostProxy](js-apis-inner-application-uiservicehostproxy-sys.md) | 是 | 否 | 一个[UIServiceHostProxy](js-apis-inner-application-uiservicehostproxy-sys.md)对象,用于客户端和服务端进行通信。 | 110 111 112**示例:** 113 114```ts 115import { UIServiceExtensionAbility, Want, common} from '@kit.AbilityKit'; 116 117class UIServiceExt extends UIServiceExtensionAbility { 118 onConnect(want: Want, proxy: common.UIServiceHostProxy){ 119 console.log('onConnect, want:' + want.abilityName + ''); 120 } 121} 122``` 123 124 125## UIServiceExtensionAbility.onDisconnect 126 127onDisconnect(want: Want, proxy: UIServiceHostProxy): void 128 129断开与[UIServiceExtension](js-apis-app-ability-uiServiceExtensionAbility-sys.md)的连接。 130 131**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 132 133**系统接口**:此接口为系统接口。 134 135**参数:** 136 137| 参数名 | 类型 | 只读 | 可选 | 说明 | 138| -------- | -------- | -------- | -------- | -------- | 139| want |[Want](js-apis-app-ability-want.md)| 是 | 否 | 当前[UIServiceExtension](js-apis-app-ability-uiServiceExtensionAbility-sys.md)相关的[Want](js-apis-app-ability-want.md)类型信息,包括Ability名称、Bundle名称等。 | 140| proxy |[UIServiceHostProxy](js-apis-inner-application-uiservicehostproxy-sys.md)| 是 | 否 | 往发起方发送数据的Proxy。 | 141 142**示例:** 143 144```ts 145import { UIServiceExtensionAbility, Want, common } from '@kit.AbilityKit'; 146 147class UIServiceExt extends UIServiceExtensionAbility { 148 onDisconnect(want: Want, proxy: common.UIServiceHostProxy) { 149 console.log('onDisconnect, want: ${want.abilityName}'); 150 } 151} 152``` 153 154 155## UIServiceExtensionAbility.onWindowWillCreate 156 157onWindowWillCreate(config: window.ExtensionWindowConfig): void 158 159[UIServiceExtension](js-apis-app-ability-uiServiceExtensionAbility-sys.md)窗体创建前的回调。前台应用把要创建windows的参数通过window.ExtensionWindowConfig传回给[UIServiceExtension](js-apis-app-ability-uiServiceExtensionAbility-sys.md)服务。 160 161**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 162 163**系统接口**:此接口为系统接口。 164 165**参数:** 166 167| 参数名 | 类型 | 只读 | 可选 | 说明 | 168| -------- | -------- | -------- | -------- | -------- | 169| config |[window.ExtensionWindowConfig](../apis-arkui/js-apis-window-sys.md#extensionwindowconfig14)| 是 | 否 | [UIServiceExtension](js-apis-app-ability-uiServiceExtensionAbility-sys.md)窗体配置信息。 | 170 171**示例:** 172 173```ts 174import { UIServiceExtensionAbility } from '@kit.AbilityKit'; 175import { window } from '@kit.ArkUI'; 176 177class UIServiceExt extends UIServiceExtensionAbility { 178 onWindowWillCreate(config : window.ExtensionWindowConfig){ 179 console.log('onWindowWillCreate'); 180 } 181} 182``` 183 184## UIServiceExtensionAbility.onWindowDidCreate 185 186onWindowDidCreate(window: window.Window): void 187 188[UIServiceExtension](js-apis-app-ability-uiServiceExtensionAbility-sys.md)创建后回调。[UIServiceExtension](js-apis-app-ability-uiServiceExtensionAbility-sys.md)服务创建窗口成功后,通过[onWindowDidCreate](#uiserviceextensionabilityonwindowdidcreate)接口把创建的窗口对象传递给前台应用。 189 190**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 191 192**系统接口**:此接口为系统接口。 193 194**参数:** 195 196| 参数名 | 类型 | 只读 | 可选 | 说明 | 197| -------- | -------- | -------- | -------- | -------- | 198| window | [window.Window](../apis-arkui/js-apis-window-sys.md#window) | 是 | 否 | 表示已创建的Window。 | 199 200**示例:** 201 202```ts 203import { UIServiceExtensionAbility } from '@kit.AbilityKit'; 204import { window } from '@kit.ArkUI'; 205 206class ServiceExt extends UIServiceExtensionAbility { 207 onWindowDidCreate(window : window.Window){ 208 console.log('onWindowDidCreate'); 209 } 210} 211``` 212 213## UIServiceExtensionAbility.onData 214 215onData(proxy: UIServiceHostProxy, data: Record<string, Object>): void 216 217接收到数据的回调。 218 219**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 220 221**系统接口**:此接口为系统接口。 222 223**参数:** 224 225| 参数名 | 类型 | 只读 | 可选 | 说明 | 226| -------- | -------- | -------- | -------- | -------- | 227| proxy | [UIServiceHostProxy](js-apis-inner-application-uiservicehostproxy-sys.md) | 是 | 否 | 往客户端发送数据的Proxy。 | 228| data | Record<string, Object> | 是 | 否 | 表示接收到的数据。 | 229 230**示例:** 231 232```ts 233import { UIServiceExtensionAbility, common} from '@kit.AbilityKit'; 234 235class ServiceExt extends UIServiceExtensionAbility { 236 onData(proxy : common.UIServiceHostProxy, data : Record<string, Object> ){ 237 console.log('onData'); 238 } 239} 240``` 241 242## UIServiceExtensionAbility.onDestroy 243 244onDestroy(): void 245 246[UIServiceExtension](js-apis-app-ability-uiServiceExtensionAbility-sys.md)销毁时回调,执行资源清理等操作。 247 248**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 249 250**系统接口**:此接口为系统接口。 251 252**示例:** 253 254```ts 255import { UIServiceExtensionAbility } from '@kit.AbilityKit'; 256 257class ServiceExt extends UIServiceExtensionAbility { 258 onDestroy() { 259 console.log('onDestroy'); 260 } 261} 262``` 263 264