1# AutoFillExtensionContext (系统接口) 2 3AutoFillExtensionContext模块是AutoFillExtensionAbility的上下文环境,继承自[ExtensionContext](js-apis-inner-application-extensionContext.md)。 4 5> **说明:** 6> 7> 本模块首批接口从API version 11开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 8> 本模块接口仅可在Stage模型下使用。 9> 本模块接口为系统接口。 10 11## 使用说明 12 13在使用AutoFillExtensionContext的功能前,需要通过AutoFillExtensionAbility子类实例获取。 14 15```ts 16import { AutoFillExtensionAbility } from '@kit.AbilityKit'; 17 18class MyAutoFillExtensionAbility extends AutoFillExtensionAbility { 19 onCreate() { 20 let AutoFillExtensionContext = this.context; 21 } 22} 23``` 24 25## AutoFillExtensionContext.reloadInModal<sup>12+</sup> 26 27reloadInModal(customData: CustomData): Promise\<void> 28 29拉起模态页面。 30 31**系统能力**:SystemCapability.Ability.AbilityRuntime.AbilityCore 32 33**参数:** 34 35| 参数名 | 类型 | 必填 | 说明 | 36| ---------- | --------------------------------------------------------- | ---- | ---------------------------- | 37| customData | [CustomData](js-apis-inner-application-customData-sys.md) | 是 | 拉起模态页面时的自定义信息。 | 38 39**返回值:** 40 41| 类型 | 说明 | 42| ------------------- | ------------------------- | 43| Promise<void> | 无返回结果的Promise对象。 | 44 45**错误码:** 46 47以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 48 49| 错误码ID | 错误信息 | 50| -------- | ------------------------------------------------------------ | 51| 202 | Not System App. Interface caller is not a system app. | 52| 401 | If the input parameter is not valid parameter. | 53| 16000011 | The context does not exist. | 54| 16000050 | Internal error. | 55 56**示例:** 57 58通过点击账号密码输入框触发自动填充服务时,在[AutoFillExtensionAbility](js-apis-app-ability-autoFillExtensionAbility-sys.md)的onFillRequest生命周期中拉起账号选择界面。 59 60当点击账号选择界面选择任意账号时,调用reloadInModal接口再次触发自动填充服务时,在AutoFillExtensionAbility的onFillRequest生命周期中拉起模态页面。 61 62```ts 63// AutoFillAbility.ts 64import { AutoFillExtensionAbility, autoFillManager, UIExtensionContentSession } from '@kit.AbilityKit'; 65import { hilog } from '@kit.PerformanceAnalysisKit'; 66 67export default class AutoFillAbility extends AutoFillExtensionAbility { 68 // ... 69 onFillRequest(session: UIExtensionContentSession, 70 request: autoFillManager.FillRequest, 71 callback: autoFillManager.FillRequestCallback) { 72 hilog.info(0x0000, 'testTag', '%{public}s', 'autofill onFillRequest'); 73 try { 74 let storage_fill: LocalStorage = new LocalStorage( 75 { 76 'session': session, 77 'message': "AutoFill Page", 78 'fillCallback': callback, 79 'viewData': request.viewData, 80 'autoFillExtensionContext': this.context, 81 'customData': request.customData 82 }); 83 if (request.customData == undefined) { 84 // 加载自动填充处理界面 85 session.loadContent('pages/AccountPage', storage_fill); 86 } else { 87 // 拉起模态页面 88 session.loadContent('pages/ReloadInModal', storage_fill); 89 } 90 } catch (err) { 91 hilog.error(0x0000, 'testTag', '%{public}s', 'autofill failed to load content'); 92 } 93 } 94} 95``` 96 97当点击账号选择界面选择任意账号时,调用reloadInModal接口。 98 99```ts 100// AccountPage.ets 101import { autoFillManager, common } from '@kit.AbilityKit'; 102import { BusinessError } from '@kit.BasicServicesKit'; 103 104let storage: LocalStorage = LocalStorage.getShared(); 105let viewData: autoFillManager.ViewData | undefined = storage.get<autoFillManager.ViewData>('viewData'); 106let context: common.AutoFillExtensionContext | undefined = storage.get<common.AutoFillExtensionContext>('autoFillExtensionContext'); 107 108@Entry 109@Component 110struct AccountPage { 111 build() { 112 Row() { 113 Column() { 114 List({ space: 10, initialIndex: 0 }) { 115 ListItem() { 116 Text('HelloWorld789456') 117 .width('100%') 118 .height(40) 119 .fontSize(16) 120 .textAlign(TextAlign.Center) 121 .borderRadius(5) 122 } 123 .onClick(() => { 124 if (viewData != undefined) { 125 if (context != undefined) { 126 context.reloadInModal({ data: { viewData: 20, text: 'HelloWorld789456' } }).then(() => { 127 console.info('reloadInModal successfully.') 128 }).catch((err: BusinessError) => { 129 console.error('reloadInModal failed.') 130 }) 131 } 132 } 133 }) 134 } 135 // ... 136 } 137 .width('100%') 138 .shadow(ShadowStyle.OUTER_FLOATING_SM) 139 } 140 .height('100%') 141 .shadow(ShadowStyle.OUTER_FLOATING_SM) 142 } 143} 144``` 145