1e41f4b71Sopenharmony_ci# @ohos.app.ability.AutoFillExtensionAbility (AutoFillExtensionAbility)(系统接口)
2e41f4b71Sopenharmony_ci
3e41f4b71Sopenharmony_ciAutoFillExtensionAbility模块提供账号和密码的自动填充和保存功能, 继承自[ExtensionAbility](js-apis-app-ability-extensionAbility.md)。
4e41f4b71Sopenharmony_ci
5e41f4b71Sopenharmony_ci> **说明:**
6e41f4b71Sopenharmony_ci> 
7e41f4b71Sopenharmony_ci> 本模块首批接口从API version 11开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。  
8e41f4b71Sopenharmony_ci>
9e41f4b71Sopenharmony_ci> 本模块接口仅可在Stage模型下使用。
10e41f4b71Sopenharmony_ci>
11e41f4b71Sopenharmony_ci> 本模块为系统接口。
12e41f4b71Sopenharmony_ci
13e41f4b71Sopenharmony_ci## 导入模块
14e41f4b71Sopenharmony_ci
15e41f4b71Sopenharmony_ci```ts
16e41f4b71Sopenharmony_ciimport { AutoFillExtensionAbility } from '@kit.AbilityKit';
17e41f4b71Sopenharmony_ci```
18e41f4b71Sopenharmony_ci
19e41f4b71Sopenharmony_ci## 属性
20e41f4b71Sopenharmony_ci
21e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Ability.AbilityRuntime.AbilityCore
22e41f4b71Sopenharmony_ci
23e41f4b71Sopenharmony_ci**参数:**
24e41f4b71Sopenharmony_ci
25e41f4b71Sopenharmony_ci| 名称 | 类型 | 可读 | 可写 | 说明 |
26e41f4b71Sopenharmony_ci| -------- | -------- | -------- | -------- | -------- |
27e41f4b71Sopenharmony_ci| context | [AutoFillExtensionContext](js-apis-inner-application-autoFillExtensionContext-sys.md)  | 是 | 否 | AutoFillExtension的上下文环境,继承自ExtensionContext。 |
28e41f4b71Sopenharmony_ci
29e41f4b71Sopenharmony_ci
30e41f4b71Sopenharmony_ci## AutoFillExtensionAbility.onCreate
31e41f4b71Sopenharmony_ci
32e41f4b71Sopenharmony_cionCreate(): void
33e41f4b71Sopenharmony_ci
34e41f4b71Sopenharmony_ciAutoFillExtensionAbility创建时触发回调函数。
35e41f4b71Sopenharmony_ci
36e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Ability.AbilityRuntime.AbilityCore
37e41f4b71Sopenharmony_ci
38e41f4b71Sopenharmony_ci**示例:**
39e41f4b71Sopenharmony_ci
40e41f4b71Sopenharmony_ci```ts
41e41f4b71Sopenharmony_ciimport { AutoFillExtensionAbility } from '@kit.AbilityKit';
42e41f4b71Sopenharmony_ciimport { hilog } from '@kit.PerformanceAnalysisKit';
43e41f4b71Sopenharmony_ci
44e41f4b71Sopenharmony_ciclass MyAutoFillExtensionAbility extends AutoFillExtensionAbility {
45e41f4b71Sopenharmony_ci  onCreate() {
46e41f4b71Sopenharmony_ci    hilog.info(0x0000, 'testTag', '%{public}s', 'onCreate');
47e41f4b71Sopenharmony_ci  }
48e41f4b71Sopenharmony_ci}
49e41f4b71Sopenharmony_ci```
50e41f4b71Sopenharmony_ci
51e41f4b71Sopenharmony_ci## AutoFillExtensionAbility.onFillRequest
52e41f4b71Sopenharmony_ci
53e41f4b71Sopenharmony_cionFillRequest(session: UIExtensionContentSession, request: FillRequest, callback: FillRequestCallback): void
54e41f4b71Sopenharmony_ci
55e41f4b71Sopenharmony_ci当发起自动填充请求或者生成密码时触发此回调函数。
56e41f4b71Sopenharmony_ci
57e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Ability.AbilityRuntime.AbilityCore
58e41f4b71Sopenharmony_ci
59e41f4b71Sopenharmony_ci**参数:**
60e41f4b71Sopenharmony_ci
61e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 |
62e41f4b71Sopenharmony_ci| -------- | -------- | -------- | -------- |
63e41f4b71Sopenharmony_ci| session | [UIExtensionContentSession](js-apis-app-ability-uiExtensionContentSession.md)  | 是 | AutoFillExtensionAbility界面内容相关信息。 |
64e41f4b71Sopenharmony_ci| request | [FillRequest](js-apis-inner-application-autoFillRequest-sys.md#fillrequest)  | 是 | 自动填充数据。 |
65e41f4b71Sopenharmony_ci| callback | [FillRequestCallback](js-apis-inner-application-autoFillRequest-sys.md#fillrequestcallback)  | 是 | 自动填充请求回调。 |
66e41f4b71Sopenharmony_ci
67e41f4b71Sopenharmony_ci**示例:**
68e41f4b71Sopenharmony_ci
69e41f4b71Sopenharmony_ci```ts
70e41f4b71Sopenharmony_ciimport { AutoFillExtensionAbility, UIExtensionContentSession, autoFillManager, common } from '@kit.AbilityKit';
71e41f4b71Sopenharmony_ciimport { hilog } from '@kit.PerformanceAnalysisKit';
72e41f4b71Sopenharmony_ci
73e41f4b71Sopenharmony_ciclass MyAutoFillExtensionAbility extends AutoFillExtensionAbility {
74e41f4b71Sopenharmony_ci  onFillRequest(session: UIExtensionContentSession,
75e41f4b71Sopenharmony_ci                request: autoFillManager.FillRequest,
76e41f4b71Sopenharmony_ci                callback: autoFillManager.FillRequestCallback) {
77e41f4b71Sopenharmony_ci    hilog.info(0x0000, 'testTag', '%{public}s', 'autofill onFillRequest');
78e41f4b71Sopenharmony_ci    hilog.info(0x0000, 'testTag', 'fill requestCallback: %{public}s', JSON.stringify(callback));
79e41f4b71Sopenharmony_ci    hilog.info(0x0000, 'testTag', 'get request viewData: ', JSON.stringify(request.viewData));
80e41f4b71Sopenharmony_ci    try {
81e41f4b71Sopenharmony_ci      let localStorageData: Record<string, UIExtensionContentSession | string | autoFillManager.FillRequestCallback |
82e41f4b71Sopenharmony_ci      autoFillManager.ViewData | common.AutoFillExtensionContext> = {
83e41f4b71Sopenharmony_ci        'session': session,
84e41f4b71Sopenharmony_ci        'message': 'AutoFill Page',
85e41f4b71Sopenharmony_ci        'fillCallback': callback,
86e41f4b71Sopenharmony_ci        'viewData': request.viewData,
87e41f4b71Sopenharmony_ci        'context': this.context,
88e41f4b71Sopenharmony_ci      };
89e41f4b71Sopenharmony_ci      let storage_fill = new LocalStorage(localStorageData);
90e41f4b71Sopenharmony_ci      if (session) {
91e41f4b71Sopenharmony_ci        session.loadContent('pages/SelectorList', storage_fill);
92e41f4b71Sopenharmony_ci      } else {
93e41f4b71Sopenharmony_ci        hilog.error(0x0000, 'testTag', '%{public}s', 'session is null');
94e41f4b71Sopenharmony_ci      }
95e41f4b71Sopenharmony_ci    } catch (err) {
96e41f4b71Sopenharmony_ci      hilog.error(0x0000, 'testTag', '%{public}s', 'failed to load content');
97e41f4b71Sopenharmony_ci    }
98e41f4b71Sopenharmony_ci  }
99e41f4b71Sopenharmony_ci}
100e41f4b71Sopenharmony_ci```
101e41f4b71Sopenharmony_ci
102e41f4b71Sopenharmony_ci## AutoFillExtensionAbility.onSaveRequest
103e41f4b71Sopenharmony_ci
104e41f4b71Sopenharmony_cionSaveRequest(session: UIExtensionContentSession, request: SaveRequest, callback: SaveRequestCallback): void
105e41f4b71Sopenharmony_ci
106e41f4b71Sopenharmony_ci当发起自动保存或者手动保存时触发此回调函数。
107e41f4b71Sopenharmony_ci
108e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Ability.AbilityRuntime.AbilityCore
109e41f4b71Sopenharmony_ci
110e41f4b71Sopenharmony_ci**参数:**
111e41f4b71Sopenharmony_ci
112e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 |
113e41f4b71Sopenharmony_ci| -------- | -------- | -------- | -------- |
114e41f4b71Sopenharmony_ci| session | [UIExtensionContentSession](js-apis-app-ability-uiExtensionContentSession.md)  | 是 | AutoFillExtensionAbility界面内容相关信息。 |
115e41f4b71Sopenharmony_ci| request | [SaveRequest](js-apis-inner-application-autoFillRequest-sys.md#saverequest)  | 是 | 保存请求数据。 |
116e41f4b71Sopenharmony_ci| callback | [SaveRequestCallback](js-apis-inner-application-autoFillRequest-sys.md#saverequestcallback)  | 是 | 保存请求回调。 |
117e41f4b71Sopenharmony_ci
118e41f4b71Sopenharmony_ci**示例:**
119e41f4b71Sopenharmony_ci
120e41f4b71Sopenharmony_ci```ts
121e41f4b71Sopenharmony_ciimport { AutoFillExtensionAbility, UIExtensionContentSession, autoFillManager, common } from '@kit.AbilityKit';
122e41f4b71Sopenharmony_ciimport { hilog } from '@kit.PerformanceAnalysisKit';
123e41f4b71Sopenharmony_ci
124e41f4b71Sopenharmony_ciclass MyAutoFillExtensionAbility extends AutoFillExtensionAbility {
125e41f4b71Sopenharmony_ci  onSaveRequest(session : UIExtensionContentSession,
126e41f4b71Sopenharmony_ci                request : autoFillManager.SaveRequest,
127e41f4b71Sopenharmony_ci                callback : autoFillManager.SaveRequestCallback) {
128e41f4b71Sopenharmony_ci    hilog.info(0x0000, 'testTag', '%{public}s', 'onSaveRequest');
129e41f4b71Sopenharmony_ci    try {
130e41f4b71Sopenharmony_ci      let localStorageData: Record<string, UIExtensionContentSession | string | autoFillManager.SaveRequestCallback |
131e41f4b71Sopenharmony_ci      autoFillManager.ViewData | common.AutoFillExtensionContext> = {
132e41f4b71Sopenharmony_ci        'session': session,
133e41f4b71Sopenharmony_ci        'message': 'AutoFill Page',
134e41f4b71Sopenharmony_ci        'fillCallback': callback,
135e41f4b71Sopenharmony_ci        'viewData': request.viewData,
136e41f4b71Sopenharmony_ci        'context': this.context,
137e41f4b71Sopenharmony_ci      };
138e41f4b71Sopenharmony_ci      let storage_save = new LocalStorage(localStorageData);
139e41f4b71Sopenharmony_ci      if (session) {
140e41f4b71Sopenharmony_ci        session.loadContent('pages/SavePage', storage_save);
141e41f4b71Sopenharmony_ci      } else {
142e41f4b71Sopenharmony_ci        hilog.error(0x0000, 'testTag', '%{public}s', 'session is null');
143e41f4b71Sopenharmony_ci      }
144e41f4b71Sopenharmony_ci    } catch (err) {
145e41f4b71Sopenharmony_ci      hilog.error(0x0000, 'testTag', '%{public}s', 'failed to load content');
146e41f4b71Sopenharmony_ci    }
147e41f4b71Sopenharmony_ci  }
148e41f4b71Sopenharmony_ci}
149e41f4b71Sopenharmony_ci```
150e41f4b71Sopenharmony_ci
151e41f4b71Sopenharmony_ci## AutoFillExtensionAbility.onUpdateRequest<sup>12+</sup>
152e41f4b71Sopenharmony_ci
153e41f4b71Sopenharmony_cionUpdateRequest(request: UpdateRequest): void
154e41f4b71Sopenharmony_ci
155e41f4b71Sopenharmony_ci当收到更新请求时触发此回调函数。
156e41f4b71Sopenharmony_ci
157e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Ability.AbilityRuntime.AbilityCore
158e41f4b71Sopenharmony_ci
159e41f4b71Sopenharmony_ci**参数:**
160e41f4b71Sopenharmony_ci
161e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 |
162e41f4b71Sopenharmony_ci| -------- | -------- | -------- | -------- |
163e41f4b71Sopenharmony_ci| request | [UpdateRequest](js-apis-inner-application-autoFillRequest-sys.md#updaterequest12)  | 是 | 更新请求。 |
164e41f4b71Sopenharmony_ci
165e41f4b71Sopenharmony_ci**示例:**
166e41f4b71Sopenharmony_ci
167e41f4b71Sopenharmony_ci```ts
168e41f4b71Sopenharmony_ciimport { AutoFillExtensionAbility, autoFillManager } from '@kit.AbilityKit';
169e41f4b71Sopenharmony_ciimport { hilog } from '@kit.PerformanceAnalysisKit';
170e41f4b71Sopenharmony_ci
171e41f4b71Sopenharmony_ciclass MyAutoFillExtensionAbility extends AutoFillExtensionAbility {
172e41f4b71Sopenharmony_ci  onUpdateRequest(request: autoFillManager.UpdateRequest) {
173e41f4b71Sopenharmony_ci    hilog.info(0x0000, 'testTag', '%{public}s', 'on update request, view data is: %{public}s',
174e41f4b71Sopenharmony_ci      JSON.stringify(request.viewData));
175e41f4b71Sopenharmony_ci  }
176e41f4b71Sopenharmony_ci}
177e41f4b71Sopenharmony_ci```
178e41f4b71Sopenharmony_ci
179e41f4b71Sopenharmony_ci## AutoFillExtensionAbility.onSessionDestroy
180e41f4b71Sopenharmony_ci
181e41f4b71Sopenharmony_cionSessionDestroy(session: UIExtensionContentSession): void
182e41f4b71Sopenharmony_ci
183e41f4b71Sopenharmony_ci当AutoFillExtensionAbility界面内容对象销毁后调用。
184e41f4b71Sopenharmony_ci
185e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Ability.AbilityRuntime.AbilityCore
186e41f4b71Sopenharmony_ci
187e41f4b71Sopenharmony_ci**参数:**
188e41f4b71Sopenharmony_ci
189e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 |
190e41f4b71Sopenharmony_ci| -------- | -------- | -------- | -------- |
191e41f4b71Sopenharmony_ci| session | [UIExtensionContentSession](js-apis-app-ability-uiExtensionContentSession.md) | 是 | AutoFillExtensionAbility界面内容相关信息。 |
192e41f4b71Sopenharmony_ci
193e41f4b71Sopenharmony_ci**示例:**
194e41f4b71Sopenharmony_ci
195e41f4b71Sopenharmony_ci```ts
196e41f4b71Sopenharmony_ciimport { AutoFillExtensionAbility, UIExtensionContentSession } from '@kit.AbilityKit';
197e41f4b71Sopenharmony_ciimport { hilog } from '@kit.PerformanceAnalysisKit';
198e41f4b71Sopenharmony_ci
199e41f4b71Sopenharmony_ciclass MyAutoFillExtensionAbility extends AutoFillExtensionAbility {
200e41f4b71Sopenharmony_ci  onSessionDestroy(session : UIExtensionContentSession) {
201e41f4b71Sopenharmony_ci    hilog.info(0x0000, 'testTag', '%{public}s', 'onSessionDestroy');
202e41f4b71Sopenharmony_ci  }
203e41f4b71Sopenharmony_ci}
204e41f4b71Sopenharmony_ci```
205e41f4b71Sopenharmony_ci
206e41f4b71Sopenharmony_ci## AutoFillExtensionAbility.onForeground
207e41f4b71Sopenharmony_ci
208e41f4b71Sopenharmony_cionForeground(): void
209e41f4b71Sopenharmony_ci
210e41f4b71Sopenharmony_ci当AutoFillExtensionAbility从后台转到前台时触发。
211e41f4b71Sopenharmony_ci
212e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Ability.AbilityRuntime.AbilityCore
213e41f4b71Sopenharmony_ci
214e41f4b71Sopenharmony_ci**示例:**
215e41f4b71Sopenharmony_ci
216e41f4b71Sopenharmony_ci```ts
217e41f4b71Sopenharmony_ciimport { AutoFillExtensionAbility } from '@kit.AbilityKit';
218e41f4b71Sopenharmony_ciimport { hilog } from '@kit.PerformanceAnalysisKit';
219e41f4b71Sopenharmony_ci
220e41f4b71Sopenharmony_ciclass MyAutoFillExtensionAbility extends AutoFillExtensionAbility {
221e41f4b71Sopenharmony_ci  onForeground() {
222e41f4b71Sopenharmony_ci    hilog.info(0x0000, 'testTag', '%{public}s', 'onForeground');
223e41f4b71Sopenharmony_ci  }
224e41f4b71Sopenharmony_ci}
225e41f4b71Sopenharmony_ci```
226e41f4b71Sopenharmony_ci
227e41f4b71Sopenharmony_ci## AutoFillExtensionAbility.onBackground
228e41f4b71Sopenharmony_ci
229e41f4b71Sopenharmony_cionBackground(): void
230e41f4b71Sopenharmony_ci
231e41f4b71Sopenharmony_ci当AutoFillExtensionAbility从前台转到后台时触发。
232e41f4b71Sopenharmony_ci
233e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Ability.AbilityRuntime.AbilityCore
234e41f4b71Sopenharmony_ci
235e41f4b71Sopenharmony_ci**示例:**
236e41f4b71Sopenharmony_ci
237e41f4b71Sopenharmony_ci```ts
238e41f4b71Sopenharmony_ciimport { AutoFillExtensionAbility } from '@kit.AbilityKit';
239e41f4b71Sopenharmony_ciimport { hilog } from '@kit.PerformanceAnalysisKit';
240e41f4b71Sopenharmony_ci
241e41f4b71Sopenharmony_ciclass MyAutoFillExtensionAbility extends AutoFillExtensionAbility {
242e41f4b71Sopenharmony_ci  onBackground() {
243e41f4b71Sopenharmony_ci    hilog.info(0x0000, 'testTag', '%{public}s', 'onBackground');
244e41f4b71Sopenharmony_ci  }
245e41f4b71Sopenharmony_ci}
246e41f4b71Sopenharmony_ci```
247e41f4b71Sopenharmony_ci
248e41f4b71Sopenharmony_ci## AutoFillExtensionAbility.onDestroy
249e41f4b71Sopenharmony_ci
250e41f4b71Sopenharmony_cionDestroy(): void | Promise&lt;void&gt;
251e41f4b71Sopenharmony_ci
252e41f4b71Sopenharmony_ci在AutoFillExtensionAbility销毁时回调,执行资源清理等操作。回调结束直接返回,或者使用Promise异步回调。
253e41f4b71Sopenharmony_ci
254e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Ability.AbilityRuntime.AbilityCore
255e41f4b71Sopenharmony_ci
256e41f4b71Sopenharmony_ci**返回值:**
257e41f4b71Sopenharmony_ci
258e41f4b71Sopenharmony_ci| 类型                                  | 说明                            |
259e41f4b71Sopenharmony_ci| ------------------------------------- | ------------------------------- |
260e41f4b71Sopenharmony_ci| void&nbsp;\|&nbsp;Promise&lt;void&gt; | 无返回值或者以Promise形式返回。 |
261e41f4b71Sopenharmony_ci
262e41f4b71Sopenharmony_ci**示例:**
263e41f4b71Sopenharmony_ci
264e41f4b71Sopenharmony_ci```ts
265e41f4b71Sopenharmony_ciimport { AutoFillExtensionAbility } from '@kit.AbilityKit';
266e41f4b71Sopenharmony_ciimport { hilog } from '@kit.PerformanceAnalysisKit';
267e41f4b71Sopenharmony_ci
268e41f4b71Sopenharmony_ciclass MyAutoFillExtensionAbility extends AutoFillExtensionAbility {
269e41f4b71Sopenharmony_ci  onDestroy() {
270e41f4b71Sopenharmony_ci    hilog.info(0x0000, 'testTag', '%{public}s', 'onDestroy');
271e41f4b71Sopenharmony_ci  }
272e41f4b71Sopenharmony_ci}
273e41f4b71Sopenharmony_ci```
274