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