• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @ohos.app.ability.UIServiceExtensionAbility (UIServiceExtensionAbility) (System API)
2
3UIServiceExtensionAbility provides extended capabilities related to the floating window component. It inherits from [ExtensionAbility](js-apis-app-ability-extensionAbility.md). It is mainly used to provide services with UIs for third-party applications.
4
5
6> **NOTE**
7>
8> The initial APIs of this module are supported since API version 14. Newly added APIs will be marked with a superscript to indicate their earliest API version.
9>
10> The APIs of this module can be used only in the stage model.
11>
12> The APIs of this module must be used in the main thread, but not in child threads such as Worker and TaskPool.
13>
14> The APIs provided by this module are system APIs.
15
16## Modules to Import
17
18```ts
19import { UIServiceExtensionAbility } from '@kit.AbilityKit';
20```
21
22## UIServiceExtensionAbility
23
24### Properties
25
26**System capability**: SystemCapability.Ability.AbilityRuntime.Core
27
28**System API**: This is a system API.
29
30| Name| Type| Read Only| Optional| Description|
31| -------- | -------- | -------- | -------- | -------- |
32| context | [UIServiceExtensionContext](js-apis-inner-application-uiserviceExtensionContext-sys.md) | No| No| Context environment for a [UIServiceExtensionAbility](js-apis-app-ability-uiServiceExtensionAbility-sys.md). This context inherits from [ExtensionContext](js-apis-inner-application-extensionContext.md).|
33
34
35### onCreate
36
37onCreate(want: Want): void
38
39Called to initialize the service logic.
40
41**System capability**: SystemCapability.Ability.AbilityRuntime.Core
42
43**System API**: This is a system API.
44
45**Parameters**
46
47| Name| Type| Read Only| Optional| Description|
48| -------- | -------- | -------- | -------- |  -------- |
49| want |  [Want](js-apis-app-ability-want.md) | Yes | No| [Want](js-apis-app-ability-want.md) information about the [UIServiceExtensionAbility](js-apis-app-ability-uiServiceExtensionAbility-sys.md), including the ability name and bundle name.|
50
51**Example**
52
53```ts
54import { UIServiceExtensionAbility, Want } from '@kit.AbilityKit';
55
56class UIServiceExt extends UIServiceExtensionAbility {
57  // Create a UIServiceExtensionAbility.
58  onCreate(want: Want) {
59    console.info(`onCreate, want: ${want.abilityName}`);
60  }
61}
62```
63
64
65### onRequest
66
67onRequest(want: Want, startId: number): void
68
69Called to request to start a [UIServiceExtensionAbility](js-apis-app-ability-uiServiceExtensionAbility-sys.md). If the UIServiceExtensionAbility is started by calling [startAbility](js-apis-inner-application-uiAbilityContext.md#startability) or [startUIServiceExtensionAbility](js-apis-inner-application-uiAbilityContext.md#startuiserviceextensionability14), this callback will be invoked after [onCreate](#oncreate). The value of **startId** is incremented for each UIServiceExtensionAbility that is started.
70
71**System capability**: SystemCapability.Ability.AbilityRuntime.Core
72
73**System API**: This is a system API.
74
75**Parameters**
76
77| Name| Type| Mandatory| Description|
78| -------- | -------- | -------- | -------- |
79| want |  [Want](js-apis-app-ability-want.md) | Yes|  [Want](js-apis-app-ability-want.md) information about the [UIServiceExtensionAbility](js-apis-app-ability-uiServiceExtensionAbility-sys.md), including the ability name and bundle name.|
80| startId | number | Yes| Number of times the instance has been started. The initial value is **1** for the first start, and it increments automatically for subsequent starts.|
81
82**Example**
83
84```ts
85import { UIServiceExtensionAbility, Want} from '@kit.AbilityKit';
86
87class UIServiceExt extends UIServiceExtensionAbility {
88  onRequest(want: Want, startId: number) {
89    console.info('onRequest, want:' + want.abilityName + ', startId:' + startId);
90  }
91}
92```
93
94
95### onConnect
96
97onConnect(want: Want, proxy: UIServiceHostProxy): void
98
99Called when the connection to a [UIServiceExtensionAbility](js-apis-app-ability-uiServiceExtensionAbility-sys.md) is established. If the UIServiceExtensionAbility is started by calling [connectUIServiceExtensionAbility()](js-apis-inner-application-uiExtensionContext.md#connectuiserviceextensionability14), this callback will be invoked after [onCreate()](#oncreate). This callback receives a [UIServiceHostProxy](js-apis-inner-application-uiservicehostproxy-sys.md) object for communication between the client and server.
100
101**System capability**: SystemCapability.Ability.AbilityRuntime.Core
102
103**System API**: This is a system API.
104
105**Parameters**
106
107| Name| Type| Read Only| Optional| Description|
108| -------- | -------- | -------- | -------- | -------- |
109| want |  [Want](js-apis-app-ability-want.md)| Yes| No| [Want](js-apis-app-ability-want.md) information about the [UIServiceExtensionAbility](js-apis-app-ability-uiServiceExtensionAbility-sys.md), including the ability name and bundle name.|
110| proxy | [UIServiceHostProxy](js-apis-inner-application-uiservicehostproxy-sys.md) | Yes| No| [UIServiceHostProxy](js-apis-inner-application-uiservicehostproxy-sys.md) object, used for communication between the client and server.|
111
112
113**Example**
114
115```ts
116import { UIServiceExtensionAbility, Want, common} from '@kit.AbilityKit';
117
118class UIServiceExt extends UIServiceExtensionAbility {
119  onConnect(want: Want, proxy: common.UIServiceHostProxy){
120    console.info('onConnect, want:' + want.abilityName + '');
121  }
122}
123```
124
125
126### onDisconnect
127
128onDisconnect(want: Want, proxy: UIServiceHostProxy): void
129
130Called when the connection to a [UIServiceExtensionAbility](js-apis-app-ability-uiServiceExtensionAbility-sys.md) is interrupted.
131
132**System capability**: SystemCapability.Ability.AbilityRuntime.Core
133
134**System API**: This is a system API.
135
136**Parameters**
137
138| Name| Type| Read Only| Optional| Description|
139| -------- | -------- | -------- | -------- | -------- |
140| want |[Want](js-apis-app-ability-want.md)| Yes| No| [Want](js-apis-app-ability-want.md) information about the [UIServiceExtensionAbility](js-apis-app-ability-uiServiceExtensionAbility-sys.md), including the ability name and bundle name.|
141| proxy |[UIServiceHostProxy](js-apis-inner-application-uiservicehostproxy-sys.md)| Yes| No| Proxy that sends data to the sender.|
142
143**Example**
144
145```ts
146import { UIServiceExtensionAbility, Want, common } from '@kit.AbilityKit';
147
148class UIServiceExt extends UIServiceExtensionAbility {
149  onDisconnect(want: Want, proxy: common.UIServiceHostProxy) {
150    console.info('onDisconnect, want: ${want.abilityName}');
151  }
152}
153```
154
155
156### onWindowWillCreate
157
158onWindowWillCreate(config: window.ExtensionWindowConfig): void
159
160Called when a window will be created for the [UIServiceExtensionAbility](js-apis-app-ability-uiServiceExtensionAbility-sys.md). Through **window.ExtensionWindowConfig** in the callback, the foreground application sends the parameters for creating the window to the [UIServiceExtensionAbility](js-apis-app-ability-uiServiceExtensionAbility-sys.md).
161
162**System capability**: SystemCapability.Ability.AbilityRuntime.Core
163
164**System API**: This is a system API.
165
166**Parameters**
167
168| Name| Type| Read Only| Optional| Description|
169| -------- | -------- | -------- | -------- | -------- |
170| config |[window.ExtensionWindowConfig](../apis-arkui/js-apis-window-sys.md#extensionwindowconfig14)| Yes| No| Window configuration information.|
171
172**Example**
173
174```ts
175import { UIServiceExtensionAbility } from '@kit.AbilityKit';
176import { window } from '@kit.ArkUI';
177
178class UIServiceExt extends UIServiceExtensionAbility {
179  onWindowWillCreate(config : window.ExtensionWindowConfig){
180    console.info('onWindowWillCreate');
181  }
182}
183```
184
185### onWindowDidCreate
186
187onWindowDidCreate(window: window.Window): void
188
189Called when a window is created for the [UIServiceExtensionAbility](js-apis-app-ability-uiServiceExtensionAbility-sys.md). Through this callback, the [UIServiceExtensionAbility](js-apis-app-ability-uiServiceExtensionAbility-sys.md) passes the created window object to the foreground application.
190
191**System capability**: SystemCapability.Ability.AbilityRuntime.Core
192
193**System API**: This is a system API.
194
195**Parameters**
196
197| Name| Type| Read Only| Optional| Description|
198| -------- | -------- | -------- | -------- |  -------- |
199| window | [window.Window](../apis-arkui/js-apis-window-sys.md#window) | Yes| No| Window object created.|
200
201**Example**
202
203```ts
204import { UIServiceExtensionAbility } from '@kit.AbilityKit';
205import { window } from '@kit.ArkUI';
206
207class ServiceExt extends UIServiceExtensionAbility {
208  onWindowDidCreate(window : window.Window){
209    console.info('onWindowDidCreate');
210  }
211}
212```
213
214### onData
215
216onData(proxy: UIServiceHostProxy, data: Record<string, Object>): void
217
218Callback invoked when data is received.
219
220**System capability**: SystemCapability.Ability.AbilityRuntime.Core
221
222**System API**: This is a system API.
223
224**Parameters**
225
226| Name| Type| Read Only| Optional| Description|
227| -------- | -------- | -------- | -------- |  -------- |
228| proxy | [UIServiceHostProxy](js-apis-inner-application-uiservicehostproxy-sys.md) | Yes| No| Proxy that sends data to the client.|
229| data | Record<string, Object> | Yes| No| Data received.|
230
231**Example**
232
233```ts
234import { UIServiceExtensionAbility, common} from '@kit.AbilityKit';
235
236class ServiceExt extends UIServiceExtensionAbility {
237  onData(proxy : common.UIServiceHostProxy, data : Record<string, Object> ){
238    console.info('onData');
239  }
240}
241```
242
243### onDestroy
244
245onDestroy(): void
246
247Called to clear resources when this [UIServiceExtensionAbility](js-apis-app-ability-uiServiceExtensionAbility-sys.md) is destroyed.
248
249**System capability**: SystemCapability.Ability.AbilityRuntime.Core
250
251**System API**: This is a system API.
252
253**Example**
254
255```ts
256import { UIServiceExtensionAbility } from '@kit.AbilityKit';
257
258class ServiceExt extends UIServiceExtensionAbility {
259  onDestroy() {
260    console.info('onDestroy');
261  }
262}
263```
264