1# @ohos.app.ability.AutoFillExtensionAbility (AutoFillExtensionAbility) (System API)
2
3The AutoFillExtensionAbility module, inherited from [ExtensionAbility](js-apis-app-ability-extensionAbility.md), provides APIs for automatically filling in and saving accounts and passwords.
4
5> **NOTE**
6>
7> The initial APIs of this module are supported since API version 11. Newly added APIs will be marked with a superscript to indicate their earliest API version.
8>
9> The APIs of this module can be used only in the stage model.
10>
11> The APIs provided by this module are system APIs.
12
13## Modules to Import
14
15```ts
16import { AutoFillExtensionAbility } from '@kit.AbilityKit';
17```
18
19## Properties
20
21**System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore
22
23**Parameters**
24
25| Name| Type| Readable| Writable| Description|
26| -------- | -------- | -------- | -------- | -------- |
27| context | [AutoFillExtensionContext](js-apis-inner-application-autoFillExtensionContext-sys.md)  | Yes| No| Context of the AutoFillExtensionAbility. This context is inherited from **ExtensionContext**.|
28
29
30## AutoFillExtensionAbility.onCreate
31
32onCreate(): void
33
34Called when an AutoFillExtensionAbility is created.
35
36**System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore
37
38**Example**
39
40```ts
41import { AutoFillExtensionAbility } from '@kit.AbilityKit';
42import { hilog } from '@kit.PerformanceAnalysisKit';
43
44class MyAutoFillExtensionAbility extends AutoFillExtensionAbility {
45  onCreate() {
46    hilog.info(0x0000, 'testTag', '%{public}s', 'onCreate');
47  }
48}
49```
50
51## AutoFillExtensionAbility.onFillRequest
52
53onFillRequest(session: UIExtensionContentSession, request: FillRequest, callback: FillRequestCallback): void
54
55Called when an auto-fill request is initiated or a password is generated.
56
57**System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore
58
59**Parameters**
60
61| Name| Type| Mandatory| Description|
62| -------- | -------- | -------- | -------- |
63| session | [UIExtensionContentSession](js-apis-app-ability-uiExtensionContentSession.md)  | Yes| UI content information related to the AutoFillExtensionAbility.|
64| request | [FillRequest](js-apis-inner-application-autoFillRequest-sys.md#fillrequest)  | Yes| Data to be automatically filled in.|
65| callback | [FillRequestCallback](js-apis-inner-application-autoFillRequest-sys.md#fillrequestcallback)  | Yes| Callback used for the auto-fill request.|
66
67**Example**
68
69```ts
70import { AutoFillExtensionAbility, UIExtensionContentSession, autoFillManager, common } from '@kit.AbilityKit';
71import { hilog } from '@kit.PerformanceAnalysisKit';
72
73class MyAutoFillExtensionAbility extends AutoFillExtensionAbility {
74  onFillRequest(session: UIExtensionContentSession,
75                request: autoFillManager.FillRequest,
76                callback: autoFillManager.FillRequestCallback) {
77    hilog.info(0x0000, 'testTag', '%{public}s', 'autofill onFillRequest');
78    hilog.info(0x0000, 'testTag', 'fill requestCallback: %{public}s', JSON.stringify(callback));
79    hilog.info(0x0000, 'testTag', 'get request viewData: ', JSON.stringify(request.viewData));
80    try {
81      let localStorageData: Record<string, UIExtensionContentSession | string | autoFillManager.FillRequestCallback |
82      autoFillManager.ViewData | common.AutoFillExtensionContext> = {
83        'session': session,
84        'message': 'AutoFill Page',
85        'fillCallback': callback,
86        'viewData': request.viewData,
87        'context': this.context,
88      };
89      let storage_fill = new LocalStorage(localStorageData);
90      if (session) {
91        session.loadContent('pages/SelectorList', storage_fill);
92      } else {
93        hilog.error(0x0000, 'testTag', '%{public}s', 'session is null');
94      }
95    } catch (err) {
96      hilog.error(0x0000, 'testTag', '%{public}s', 'failed to load content');
97    }
98  }
99}
100```
101
102## AutoFillExtensionAbility.onSaveRequest
103
104onSaveRequest(session: UIExtensionContentSession, request: SaveRequest, callback: SaveRequestCallback): void
105
106Called when automatic or manual saving is initiated.
107
108**System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore
109
110**Parameters**
111
112| Name| Type| Mandatory| Description|
113| -------- | -------- | -------- | -------- |
114| session | [UIExtensionContentSession](js-apis-app-ability-uiExtensionContentSession.md)  | Yes| UI content information related to the AutoFillExtensionAbility.|
115| request | [SaveRequest](js-apis-inner-application-autoFillRequest-sys.md#saverequest)  | Yes| Data to be saved.|
116| callback | [SaveRequestCallback](js-apis-inner-application-autoFillRequest-sys.md#saverequestcallback)  | Yes| Callback used for the saving request.|
117
118**Example**
119
120```ts
121import { AutoFillExtensionAbility, UIExtensionContentSession, autoFillManager, common } from '@kit.AbilityKit';
122import { hilog } from '@kit.PerformanceAnalysisKit';
123
124class MyAutoFillExtensionAbility extends AutoFillExtensionAbility {
125  onSaveRequest(session : UIExtensionContentSession,
126                request : autoFillManager.SaveRequest,
127                callback : autoFillManager.SaveRequestCallback) {
128    hilog.info(0x0000, 'testTag', '%{public}s', 'onSaveRequest');
129    try {
130      let localStorageData: Record<string, UIExtensionContentSession | string | autoFillManager.SaveRequestCallback |
131      autoFillManager.ViewData | common.AutoFillExtensionContext> = {
132        'session': session,
133        'message': 'AutoFill Page',
134        'fillCallback': callback,
135        'viewData': request.viewData,
136        'context': this.context,
137      };
138      let storage_save = new LocalStorage(localStorageData);
139      if (session) {
140        session.loadContent('pages/SavePage', storage_save);
141      } else {
142        hilog.error(0x0000, 'testTag', '%{public}s', 'session is null');
143      }
144    } catch (err) {
145      hilog.error(0x0000, 'testTag', '%{public}s', 'failed to load content');
146    }
147  }
148}
149```
150
151## AutoFillExtensionAbility.onUpdateRequest<sup>12+</sup>
152
153onUpdateRequest(request: UpdateRequest): void
154
155Called when an update request is received.
156
157**System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore
158
159**Parameters**
160
161| Name| Type| Mandatory| Description|
162| -------- | -------- | -------- | -------- |
163| request | [UpdateRequest](js-apis-inner-application-autoFillRequest-sys.md#updaterequest12)  | Yes| Update request.|
164
165**Example**
166
167```ts
168import { AutoFillExtensionAbility, autoFillManager } from '@kit.AbilityKit';
169import { hilog } from '@kit.PerformanceAnalysisKit';
170
171class MyAutoFillExtensionAbility extends AutoFillExtensionAbility {
172  onUpdateRequest(request: autoFillManager.UpdateRequest) {
173    hilog.info(0x0000, 'testTag', '%{public}s', 'on update request, view data is: %{public}s',
174      JSON.stringify(request.viewData));
175  }
176}
177```
178
179## AutoFillExtensionAbility.onSessionDestroy
180
181onSessionDestroy(session: UIExtensionContentSession): void
182
183Called when a **UIExtensionContentSession** instance is destroyed for this AutoFillExtensionAbility.
184
185**System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore
186
187**Parameters**
188
189| Name| Type| Mandatory| Description|
190| -------- | -------- | -------- | -------- |
191| session | [UIExtensionContentSession](js-apis-app-ability-uiExtensionContentSession.md) | Yes| UI content information related to the AutoFillExtensionAbility.|
192
193**Example**
194
195```ts
196import { AutoFillExtensionAbility, UIExtensionContentSession } from '@kit.AbilityKit';
197import { hilog } from '@kit.PerformanceAnalysisKit';
198
199class MyAutoFillExtensionAbility extends AutoFillExtensionAbility {
200  onSessionDestroy(session : UIExtensionContentSession) {
201    hilog.info(0x0000, 'testTag', '%{public}s', 'onSessionDestroy');
202  }
203}
204```
205
206## AutoFillExtensionAbility.onForeground
207
208onForeground(): void
209
210Called when this AutoFillExtensionAbility is switched from the background to the foreground.
211
212**System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore
213
214**Example**
215
216```ts
217import { AutoFillExtensionAbility } from '@kit.AbilityKit';
218import { hilog } from '@kit.PerformanceAnalysisKit';
219
220class MyAutoFillExtensionAbility extends AutoFillExtensionAbility {
221  onForeground() {
222    hilog.info(0x0000, 'testTag', '%{public}s', 'onForeground');
223  }
224}
225```
226
227## AutoFillExtensionAbility.onBackground
228
229onBackground(): void
230
231Called when this AutoFillExtensionAbility is switched from the foreground to the background.
232
233**System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore
234
235**Example**
236
237```ts
238import { AutoFillExtensionAbility } from '@kit.AbilityKit';
239import { hilog } from '@kit.PerformanceAnalysisKit';
240
241class MyAutoFillExtensionAbility extends AutoFillExtensionAbility {
242  onBackground() {
243    hilog.info(0x0000, 'testTag', '%{public}s', 'onBackground');
244  }
245}
246```
247
248## AutoFillExtensionAbility.onDestroy
249
250onDestroy(): void | Promise&lt;void&gt;
251
252Called to clear resources when this AutoFillExtensionAbility is destroyed. This API either returns the result directly or uses a promise to return the result.
253
254**System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore
255
256**Return value**
257
258| Type                                 | Description                           |
259| ------------------------------------- | ------------------------------- |
260| void&nbsp;\|&nbsp;Promise&lt;void&gt; | Returns no value or returns a Promise.|
261
262**Example**
263
264```ts
265import { AutoFillExtensionAbility } from '@kit.AbilityKit';
266import { hilog } from '@kit.PerformanceAnalysisKit';
267
268class MyAutoFillExtensionAbility extends AutoFillExtensionAbility {
269  onDestroy() {
270    hilog.info(0x0000, 'testTag', '%{public}s', 'onDestroy');
271  }
272}
273```
274