1# @ohos.app.ability.AutoFillExtensionAbility (AutoFillExtensionAbility)(系统接口)
2
3AutoFillExtensionAbility模块提供账号和密码的自动填充和保存功能, 继承自[ExtensionAbility](js-apis-app-ability-extensionAbility.md)。
4
5> **说明:**
6>
7> 本模块首批接口从API version 11开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
8>
9> 本模块接口仅可在Stage模型下使用。
10>
11> 本模块为系统接口。
12
13## 导入模块
14
15```ts
16import { AutoFillExtensionAbility } from '@kit.AbilityKit';
17```
18
19## 属性
20
21**系统能力**:SystemCapability.Ability.AbilityRuntime.AbilityCore
22
23**参数:**
24
25| 名称 | 类型 | 可读 | 可写 | 说明 |
26| -------- | -------- | -------- | -------- | -------- |
27| context | [AutoFillExtensionContext](js-apis-inner-application-autoFillExtensionContext-sys.md)  | 是 | 否 | AutoFillExtension的上下文环境,继承自ExtensionContext。 |
28
29
30## AutoFillExtensionAbility.onCreate
31
32onCreate(): void
33
34AutoFillExtensionAbility创建时触发回调函数。
35
36**系统能力**:SystemCapability.Ability.AbilityRuntime.AbilityCore
37
38**示例:**
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
55当发起自动填充请求或者生成密码时触发此回调函数。
56
57**系统能力**:SystemCapability.Ability.AbilityRuntime.AbilityCore
58
59**参数:**
60
61| 参数名 | 类型 | 必填 | 说明 |
62| -------- | -------- | -------- | -------- |
63| session | [UIExtensionContentSession](js-apis-app-ability-uiExtensionContentSession.md)  | 是 | AutoFillExtensionAbility界面内容相关信息。 |
64| request | [FillRequest](js-apis-inner-application-autoFillRequest-sys.md#fillrequest)  | 是 | 自动填充数据。 |
65| callback | [FillRequestCallback](js-apis-inner-application-autoFillRequest-sys.md#fillrequestcallback)  | 是 | 自动填充请求回调。 |
66
67**示例:**
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
106当发起自动保存或者手动保存时触发此回调函数。
107
108**系统能力**:SystemCapability.Ability.AbilityRuntime.AbilityCore
109
110**参数:**
111
112| 参数名 | 类型 | 必填 | 说明 |
113| -------- | -------- | -------- | -------- |
114| session | [UIExtensionContentSession](js-apis-app-ability-uiExtensionContentSession.md)  | 是 | AutoFillExtensionAbility界面内容相关信息。 |
115| request | [SaveRequest](js-apis-inner-application-autoFillRequest-sys.md#saverequest)  | 是 | 保存请求数据。 |
116| callback | [SaveRequestCallback](js-apis-inner-application-autoFillRequest-sys.md#saverequestcallback)  | 是 | 保存请求回调。 |
117
118**示例:**
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
155当收到更新请求时触发此回调函数。
156
157**系统能力**:SystemCapability.Ability.AbilityRuntime.AbilityCore
158
159**参数:**
160
161| 参数名 | 类型 | 必填 | 说明 |
162| -------- | -------- | -------- | -------- |
163| request | [UpdateRequest](js-apis-inner-application-autoFillRequest-sys.md#updaterequest12)  | 是 | 更新请求。 |
164
165**示例:**
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
183当AutoFillExtensionAbility界面内容对象销毁后调用。
184
185**系统能力**:SystemCapability.Ability.AbilityRuntime.AbilityCore
186
187**参数:**
188
189| 参数名 | 类型 | 必填 | 说明 |
190| -------- | -------- | -------- | -------- |
191| session | [UIExtensionContentSession](js-apis-app-ability-uiExtensionContentSession.md) | 是 | AutoFillExtensionAbility界面内容相关信息。 |
192
193**示例:**
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
210当AutoFillExtensionAbility从后台转到前台时触发。
211
212**系统能力**:SystemCapability.Ability.AbilityRuntime.AbilityCore
213
214**示例:**
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
231当AutoFillExtensionAbility从前台转到后台时触发。
232
233**系统能力**:SystemCapability.Ability.AbilityRuntime.AbilityCore
234
235**示例:**
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
252在AutoFillExtensionAbility销毁时回调,执行资源清理等操作。回调结束直接返回,或者使用Promise异步回调。
253
254**系统能力**:SystemCapability.Ability.AbilityRuntime.AbilityCore
255
256**返回值:**
257
258| 类型                                  | 说明                            |
259| ------------------------------------- | ------------------------------- |
260| void&nbsp;\|&nbsp;Promise&lt;void&gt; | 无返回值或者以Promise形式返回。 |
261
262**示例:**
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