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