AutoFillRequest (System API)
AutoFillRequest provides page data and callbacks when a callback is triggered for the AutoFillExtensionAbility.
NOTE
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. The APIs provided by this module are system APIs. The APIs of this module can be used only in the stage model.
Modules to Import
import autoFillManager from '@ohos.app.ability.autoFillManager';
FillRequest
Defines the information about an auto-fill request.
System capability: SystemCapability.Ability.AbilityRuntime.AbilityCore
Name | Type | Mandatory | Description |
---|---|---|---|
type | AutoFillType | Yes | Type of the element to be automatically filled in. |
viewData | ViewData | Yes | Page data. |
SaveRequest
Defines the information about an auto-saving request.
System capability: SystemCapability.Ability.AbilityRuntime.AbilityCore
Name | Type | Mandatory | Description |
---|---|---|---|
viewData | ViewData | Yes | Page data. |
FillResponse
Defines the information about the response to an auto-fill request.
System capability: SystemCapability.Ability.AbilityRuntime.AbilityCore
Name | Type | Mandatory | Description |
---|---|---|---|
viewData | ViewData | Yes | Page data. |
FillRequestCallback
Implements callbacks for an auto-fill request, which is used to automatically fill in or generate a password. The callbacks can be used to notify the client of the success or failure of the request.
FillRequestCallback.onSuccess
onSuccess(response: FillResponse): void
Called when an auto-fill request is successfully processed.
System capability: SystemCapability.Ability.AbilityRuntime.AbilityCore
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
response | FillResponse | Yes | Information about the response to the auto-fill response. |
Error codes
ID | Error Message |
---|---|
16000050 | Internal error. |
Example
// MyAutoFillExtensionAbility.ts
import AutoFillExtensionAbility from '@ohos.app.ability.AutoFillExtensionAbility';
import UIExtensionContentSession from '@ohos.app.ability.UIExtensionContentSession';
import autoFillManager from '@ohos.app.ability.autoFillManager';
import hilog from '@ohos.hilog';
class MyAutoFillExtensionAbility extends AutoFillExtensionAbility {
onFillRequest(session: UIExtensionContentSession,
request: autoFillManager.FillRequest,
callback: autoFillManager.FillRequestCallback) {
hilog.info(0x0000, 'testTag', '%{public}s', 'autofill onFillRequest');
try {
let storageData: Record<string, string | autoFillManager.FillRequestCallback | autoFillManager.ViewData> = {
'fillCallback': callback,
'message': 'AutoFill Page',
'viewData': request.viewData,
}
let storage_fill = new LocalStorage(storageData);
if (session) {
session.loadContent('pages/AutoFillPage', storage_fill);
} else {
hilog.error(0x0000, 'testTag', '%{public}s', 'session is null');
}
} catch (err) {
hilog.error(0x0000, 'testTag', '%{public}s', 'failed to load content');
}
}
}
// AutoFillPage.ets
import autoFillManager from '@ohos.app.ability.autoFillManager';
import Base from '@ohos.base';
import hilog from '@ohos.hilog';
let storage: LocalStorage = LocalStorage.getShared();
let fillCallback: autoFillManager.FillRequestCallback | undefined =
storage.get<autoFillManager.FillRequestCallback>('fillCallback');
let viewData: autoFillManager.ViewData | undefined = storage.get<autoFillManager.ViewData>('viewData');
@Entry
@Component
struct AutoFillPage {
build() {
Row() {
Column() {
Text('AutoFill Page')
.fontSize(50)
.fontWeight(FontWeight.Bold)
}
Button('onSuccess')
.onClick(() => {
if (viewData) {
viewData.pageNodeInfos[0].value = 'user1';
viewData.pageNodeInfos[1].value = 'user1 password';
viewData.pageNodeInfos[2].value = 'user1 generate new password';
hilog.info(0x0000, 'testTag', 'autofill success with viewData: %{public}s', JSON.stringify(viewData));
try {
fillCallback?.onSuccess({ viewData: viewData });
} catch (error) {
console.error(`catch error, code: ${(error as Base.BusinessError).code},
message: ${(error as Base.BusinessError).message}`);
}
}
})
.width('100%')
}
.height('100%')
}
}
FillRequestCallback.onFailure
onFailure(): void
Called when an auto-fill request fails to be processed.
System capability: SystemCapability.Ability.AbilityRuntime.AbilityCore
Error codes
ID | Error Message |
---|---|
16000050 | Internal error. |
Example
// MyAutoFillExtensionAbility.ts
import AutoFillExtensionAbility from '@ohos.app.ability.AutoFillExtensionAbility';
import UIExtensionContentSession from '@ohos.app.ability.UIExtensionContentSession';
import autoFillManager from '@ohos.app.ability.autoFillManager';
import hilog from '@ohos.hilog';
class MyAutoFillExtensionAbility extends AutoFillExtensionAbility {
onFillRequest(session : UIExtensionContentSession,
request : autoFillManager.FillRequest,
callback : autoFillManager.FillRequestCallback) {
hilog.info(0x0000, 'testTag', '%{public}s', 'autofill onFillRequest');
try {
let storageData: Record<string, string | autoFillManager.FillRequestCallback | autoFillManager.ViewData> = {
'fillCallback': callback,
'message': 'AutoFill Page',
'viewData': request.viewData,
}
let storage_fill = new LocalStorage(storageData);
if (session) {
session.loadContent('pages/AutoFill Page', storage_fill);
} else {
hilog.error(0x0000, 'testTag', '%{public}s', 'session is null');
}
} catch (err) {
hilog.error(0x0000, 'testTag', '%{public}s', 'failed to load content');
}
}
}
// AutoFillPage.ets
import autoFillManager from '@ohos.app.ability.autoFillManager';
import Base from '@ohos.base';
import hilog from '@ohos.hilog';
let storage: LocalStorage = LocalStorage.getShared();
let fillCallback: autoFillManager.FillRequestCallback | undefined =
storage.get<autoFillManager.FillRequestCallback>('fillCallback');
@Entry
@Component
struct AutoFillPage {
build() {
Row() {
Column() {
Text('AutoFill Page')
.fontSize(50)
.fontWeight(FontWeight.Bold)
}
Button('onFailure')
.onClick(() => {
hilog.info(0x0000, 'testTag', 'autofill failure');
try {
fillCallback?.onFailure();
} catch (error) {
console.error(`catch error, code: ${(error as Base.BusinessError).code},
message: ${(error as Base.BusinessError).message}`);
}
})
.width('100%')
}
.height('100%')
}
}
FillRequestCallback.onCancel
onCancel(): void
Called when an auto-fill request is canceled.
System capability: SystemCapability.Ability.AbilityRuntime.AbilityCore
Error codes
ID | Error Message |
---|---|
16000050 | Internal error. |
Example
// MyAutoFillExtensionAbility.ts
import AutoFillExtensionAbility from '@ohos.app.ability.AutoFillExtensionAbility';
import UIExtensionContentSession from '@ohos.app.ability.UIExtensionContentSession';
import autoFillManager from '@ohos.app.ability.autoFillManager';
import hilog from '@ohos.hilog';
class MyAutoFillExtensionAbility extends AutoFillExtensionAbility {
onFillRequest(session: UIExtensionContentSession,
request: autoFillManager.FillRequest,
callback: autoFillManager.FillRequestCallback) {
hilog.info(0x0000, 'testTag', '%{public}s', 'autofill onFillRequest');
try {
let storageData: Record<string, string | autoFillManager.FillRequestCallback | autoFillManager.ViewData> = {
'fillCallback': callback,
'message': 'AutoFill Page',
'viewData': request.viewData,
}
let storage_fill = new LocalStorage(storageData);
if (session) {
session.loadContent('pages/AutoFillPage', storage_fill);
} else {
hilog.error(0x0000, 'testTag', '%{public}s', 'session is null');
}
} catch (err) {
hilog.error(0x0000, 'testTag', '%{public}s', 'failed to load content');
}
}
}
// AutoFillPage.ets
import autoFillManager from '@ohos.app.ability.autoFillManager';
import Base from '@ohos.base';
import hilog from '@ohos.hilog';
let storage: LocalStorage = LocalStorage.getShared();
let fillCallback: autoFillManager.FillRequestCallback | undefined =
storage.get<autoFillManager.FillRequestCallback>('fillCallback');
@Entry
@Component
struct AutoFillPage {
build() {
Row() {
Column() {
Text('Hello World')
.fontSize(50)
.fontWeight(FontWeight.Bold)
}
Button('onCancel')
.onClick(() => {
hilog.info(0x0000, 'testTag', 'autofill cancel');
try {
fillCallback?.onCancel();
} catch (error) {
console.error(`catch error, code: ${(error as Base.BusinessError).code},
message: ${(error as Base.BusinessError).message}`);
}
})
.width('100%')
}
.height('100%')
}
}
SaveRequestCallback
Implements callbacks for an automatic or a manual saving request.
SaveRequestCallback.onSuccess
onSuccess(): void
Called when a saving request is successfully processed.
System capability: SystemCapability.Ability.AbilityRuntime.AbilityCore
Error codes
ID | Error Message |
---|---|
16000050 | Internal error. |
Example
// MyAutoFillExtensionAbility.ts
import AutoFillExtensionAbility from '@ohos.app.ability.AutoFillExtensionAbility';
import UIExtensionContentSession from '@ohos.app.ability.UIExtensionContentSession';
import autoFillManager from '@ohos.app.ability.autoFillManager';
import hilog from '@ohos.hilog';
class MyAutoFillExtensionAbility extends AutoFillExtensionAbility {
onSaveRequest(session: UIExtensionContentSession,
request: autoFillManager.SaveRequest,
callback: autoFillManager.SaveRequestCallback) {
hilog.info(0x0000, 'testTag', '%{public}s', 'onSaveRequest');
try {
let storageData: Record<string, string | autoFillManager.SaveRequestCallback | autoFillManager.ViewData> = {
'message': 'AutoFill Page',
'saveCallback': callback,
'viewData': request.viewData
}
let storage_save = new LocalStorage(storageData);
if (session) {
session.loadContent('pages/SavePage', storage_save);
} else {
hilog.error(0x0000, 'testTag', '%{public}s', 'session is null');
}
} catch (err) {
hilog.error(0x0000, 'testTag', '%{public}s', 'failed to load content');
}
}
}
// SavePage.ets
import autoFillManager from '@ohos.app.ability.autoFillManager';
import Base from '@ohos.base';
import hilog from '@ohos.hilog';
let storage: LocalStorage = LocalStorage.getShared();
let saveCallback: autoFillManager.SaveRequestCallback | undefined =
storage.get<autoFillManager.SaveRequestCallback>('saveCallback');
@Entry
@Component
struct SavePage {
build() {
Row() {
Column() {
Text('SavePage')
.fontSize(50)
.fontWeight(FontWeight.Bold)
}
Button('onSuccess')
.onClick(() => {
hilog.info(0x0000, 'testTag', 'autosave success');
try {
saveCallback?.onSuccess();
} catch (error) {
console.error(`catch error, code: ${(error as Base.BusinessError).code},
message: ${(error as Base.BusinessError).message}`);
}
})
.width('100%')
}
.height('100%')
}
}
SaveRequestCallback.onFailure
onFailure(): void
Called when a saving request fails to be processed.
System capability: SystemCapability.Ability.AbilityRuntime.AbilityCore
Error codes
ID | Error Message |
---|---|
16000050 | Internal error. |
Example
// MyAutoFillExtensionAbility.ts
import AutoFillExtensionAbility from '@ohos.app.ability.AutoFillExtensionAbility';
import UIExtensionContentSession from '@ohos.app.ability.UIExtensionContentSession';
import autoFillManager from '@ohos.app.ability.autoFillManager';
import hilog from '@ohos.hilog';
class MyAutoFillExtensionAbility extends AutoFillExtensionAbility {
onSaveRequest(session: UIExtensionContentSession,
request: autoFillManager.SaveRequest,
callback: autoFillManager.SaveRequestCallback) {
hilog.info(0x0000, 'testTag', '%{public}s', 'onSaveRequest');
try {
let storageData: Record<string, string | autoFillManager.SaveRequestCallback | autoFillManager.ViewData> = {
'message': 'AutoFill Page',
'saveCallback': callback,
'viewData': request.viewData
}
let storage_save = new LocalStorage(storageData);
if (session) {
session.loadContent('pages/SavePage', storage_save);
} else {
hilog.error(0x0000, 'testTag', '%{public}s', 'session is null');
}
} catch (err) {
hilog.error(0x0000, 'testTag', '%{public}s', 'failed to load content');
}
}
}
// SavePage.ets
import autoFillManager from '@ohos.app.ability.autoFillManager';
import Base from '@ohos.base';
import hilog from '@ohos.hilog';
let storage: LocalStorage = LocalStorage.getShared();
let saveCallback: autoFillManager.SaveRequestCallback | undefined =
storage.get<autoFillManager.SaveRequestCallback>('saveCallback');
@Entry
@Component
struct SavePage {
build() {
Row() {
Column() {
Text('Save Page')
.fontSize(50)
.fontWeight(FontWeight.Bold)
}
Button('onFailure')
.onClick(() => {
hilog.info(0x0000, 'testTag', 'autofill failure');
try {
saveCallback?.onFailure();
} catch (error) {
console.error(`catch error, code: ${(error as Base.BusinessError).code},
message: ${(error as Base.BusinessError).message}`);
}
})
.width('100%')
}
.height('100%')
}
}