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