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<void> 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 \| Promise<void> | 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