| Name | Date | Size | #Lines | LOC | ||
|---|---|---|---|---|---|---|
| .. | - | - | ||||
| AppScope/ | 22-Mar-2025 | - | 34 | 32 | ||
| entry/ | 22-Mar-2025 | - | 2,595 | 2,374 | ||
| hvigor/ | 22-Mar-2025 | - | 20 | 19 | ||
| screenshots/ | 22-Mar-2025 | - | ||||
| .gitignore | D | 22-Mar-2025 | 119 | 11 | 11 | |
| README_zh.md | D | 22-Mar-2025 | 9.4 KiB | 135 | 87 | |
| build-profile.json5 | D | 22-Mar-2025 | 1.1 KiB | 43 | 42 | |
| hvigorfile.ts | D | 22-Mar-2025 | 768 | 17 | 1 | |
| oh-package.json5 | D | 22-Mar-2025 | 896 | 28 | 27 | |
| ohosTest.md | D | 22-Mar-2025 | 2.1 KiB | 12 | 8 |
README_zh.md
1# AutoFill自动填充能力 2 3### 介绍 4 5本示例使用[application/AutoFillRequest](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/application/AutoFillRequest.d.ts),[@ohos.app.ability.AutoFillExtensionAbility](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/@ohos.app.ability.AutoFillExtensionAbility.d.ts),[application/ViewData](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/application/ViewData.d.ts),[@ohos.app.ability.autoFillManager ](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/@ohos.app.ability.autoFillManager.d.ts)等接口,展示了如何使用AutoFill自动填充框架。具体而言实现了如下几点功能: 6 71.账号和密码的自动保存; 82.账号和密码的自动填充; 93.密码的自动生成并填充; 104.支持账号和密码自动填充后执行开发者的操作。 11 12### 效果预览 13 14| 登录页面 | 注册页面 | 账号密码选择页面 | 生物认证 | 生成密码页面 | 15| :-------------------------------------- | ------------------------------------------ | --------------------------------------------- | ----------------------------------------------------- | ----------------------------------------- | 16| <img src="screenshots/loginPage.jpg" /> | <img src="screenshots/registerPage.jpg" /> | <img src="screenshots/autoFillControl.jpg" /> | <img src="screenshots/biometricauthentication.jpg" /> | <img src="screenshots/newPassWord.jpg" /> | 17 18使用说明: 19 201.安装编译生成的hap包,点击PasswordBox图标即可进入应用。 21 222.进入应用显示登录页面,点击页面中账号输入框,页面发生跳转,新页面显示“选择已保存的账号密码”的标题,选择其中任意账号后,页面会回到登录页面,并且账号密码输入框中分别显示出刚选择的用户名以及其对应的密码。 23 243.在登录页面点击页面中密码输入框,页面发生跳转,新页面显示“选择已保存的账号密码”的标题,选择其中任意账号后,页面会跳转到生物认证页面。 25 264.进入生物认证界面后点击成功按钮,页面会回到登录页面,并且账号密码输入框中分别显示出刚选择的用户名以及其对应的密码,点击失败按钮,页面回到登录页面,账号密码输入框中不能显示出刚选择的用户名以及其对应的密码。 27 284.在登录页面点击"注册"按钮,页面跳转到注册页面,点击注册页面中生成输入框,页面发生跳转,新页面显示"请确认是否生成密码"的标题,点击"确认"按钮,页面回到注册页面,并且生成密码输入框中显示生成的密码。 29 305.在登录页面分别手动输入用户名和密码,点击"登录"按钮,页面先显示"登录成功",随后自动触发OnSaveRequest回调,立即跳转新页面显示"请确认保存当前账号密码",点击"确认",页面回到"登录成功"页面。 31 326.在注册页面,输入账号密码,点击"立即注册"按钮,页面先弹出"注册成功"弹窗,随后触发OnSaveRequest回调,立即跳转到页面显示"请确认保存当前账号密码",点击"确认"按钮,返回注册界面,同时按钮变为“登录”。 33 34### 工程目录 35 36``` 37entry/src/main/ets/ 38|---autofillability 39| |---AutoFillAbility.ts // AutoFillExtensionAbility实现类 40|---autoFillPages 41| |---AutoFillControl.ets // USER_NAME/Password类型的autofill控件页面 42| |---AutoFillNewPassWord.ets // NEW_PASSWORD类型的autofill控件页面 43| |---BiometricAuthentication.ets // 生物认证页面 44| |---LoginSuccessPage.ets // 登录成功页面 45| |---RegisterPage.ets // 注册页面 46| |---SavePage.ets // 保存页面 47|---entryability 48| |---EntryAbility.ts 49|---pages 50| |---index.ets // 登录页面 51``` 52 53### 具体实现 54 55* 该示例分为五个分支: 56 1. USER_NAME类型的AutoFill控件自动填充 57 58 * USER_NAME类型的TextInput控件获焦后拉起AutoFillExtensionAbility,并触发onFillRequest回调,将选择的账号密码返回到textInput组件。 59 * 源码链接:[Index.ets](entry/src/main/ets/pages/Index.ets),[AutoFillAbility.ts](entry/src/main/ets/autofillability/AutoFillAbility.ts),[AutoFillControl.ets](entry/src/main/ets/autofillpages/AutoFillControl.ets) 60 * 参考接口:[application/AutoFillRequest](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/application/AutoFillRequest.d.ts),[@ohos.app.ability.AutoFillExtensionAbility](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/@ohos.app.ability.AutoFillExtensionAbility.d.ts),[application/ViewData](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/application/ViewData.d.ts) 61 62 2. Password类型的AutoFill控件自动填充 63 64 * Password类型的TextInput控件获焦后拉起AutoFillExtensionAbility,并触发onFillRequest回调,将选择的账号密码返回到textInput组件。 65 * 源码链接:[Index.ets](entry/src/main/ets/pages/Index.ets),[AutoFillAbility.ts](entry/src/main/ets/autofillability/AutoFillAbility.ts),[AutoFillControl.ets](entry/src/main/ets/autofillpages/AutoFillControl.ets) 66 * 参考接口:[application/AutoFillRequest](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/application/AutoFillRequest.d.ts),[@ohos.app.ability.AutoFillExtensionAbility](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/@ohos.app.ability.AutoFillExtensionAbility.d.ts), [application/ViewData](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/application/ViewData.d.ts) 67 68 3. NEW_PASSWORD类型的AutoFill控件自动填充 69 70 * NEW_PASSWORD类型的TextInput控件获焦后拉起AutoFillExtensionAbility,并触发onFillRequest回调,将选择的账号密码返回到textInput组件。 71 * 源码链接:[RegisterPage.ets](entry/src/main/ets/autofillpages/RegisterPage.ets), [AutoFillAbility.ts](entry/src/main/ets/autofillability/AutoFillAbility.ts),[AutoFillNewPassWord.ets](entry/src/main/ets/autofillpages/AutoFillNewPassWord.ets) 72 73 * 参考接口:[application/AutoFillRequest](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/application/AutoFillRequest.d.ts),[@ohos.app.ability.AutoFillExtensionAbility](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/@ohos.app.ability.AutoFillExtensionAbility.d.ts), [application/ViewData](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/application/ViewData.d.ts) 74 75 4. 自动保存能力 76 77 * 当登录页面消失,发起自动保存请求,触发onSaveRequest生命周期。 78 * 源码链接:[Index.ets](entry/src/main/ets/pages/Index.ets),[AutoFillAbility.ts](entry/src/main/ets/autofillability/AutoFillAbility.ts),[LoginSuccessPage.ets](entry/src/main/ets/autofillpages/LoginSuccessPage.ets),[SavePage.ets](entry/src/main/ets/autofillpages/SavePage.ets) 79 * 参考接口:[application/AutoFillRequest](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/application/AutoFillRequest.d.ts),[@ohos.app.ability.AutoFillExtensionAbility](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/@ohos.app.ability.AutoFillExtensionAbility.d.ts) 80 81 5. 用户主动调用保存接口 82 83 * 用户主动调用requestAutoSave接口保存账号密码。 84 * 源码链接:[RegisterPage.ets](entry/src/main/ets/autofillpages/RegisterPage.ets),[AutoFillAbility.ts](entry/src/main/ets/autofillability/AutoFillAbility.ts),[SavePage.ets](entry/src/main/ets/autofillpages/SavePage.ets) 85 * 参考接口:[application/AutoFillRequest](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/application/AutoFillRequest.d.ts),[@ohos.app.ability.AutoFillExtensionAbility](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/@ohos.app.ability.AutoFillExtensionAbility.d.ts),[@ohos.app.ability.autoFillManager](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/@ohos.app.ability.autoFillManager.d.ts) 86 87### 安装命令 88 891.验证生物认证界面需要在Window CMD输入如下命令配置账号密码自动填充时拉起Popup: 90 91``` 92hdc shell param set persist.sys.abilityms.autofill.is_passwd_popup_window true 93``` 94 952.验证登录页面中注册功能需要在Window CMD输入如下命令配置账号密码自动填充时拉起模态窗: 96 97``` 98hdc shell param set persist.sys.abilityms.autofill.is_passwd_popup_window false 99``` 100 101### 相关权限 102 103不涉及。 104 105### 依赖 106 107不涉及。 108 109### 约束与限制 110 1111.本示例仅支持标准系统上运行,支持设备:RK3568; 112 1132.本示例为Stage模型,支持API14版本SDK,版本号:5.0.2; 114 1153.本示例涉及使用系统接口:AutoFillExtensionAbility.onFillRequest,AutoFillExtensionAbility.onSaveRequest,autoFillManager.requestAutoSave,需要手动替换Full SDK才能编译通过; 116 1174.本示例需要使用DevEco Studio 5.0.2 Release 才可编译运行; 118 1195.本示例涉及权限至少为system_basic级别; 120 1216.本示例的bundleName只能是"com.ohos.passwordbox"不可修改。 122 123### 下载 124 125如需单独下载本工程,执行如下命令: 126 127``` 128git init 129git config core.sparsecheckout true 130echo code/SystemFeature/AutoFill/AutoFill/ > .git/info/sparse-checkout 131git remote add origin https://gitee.com/openharmony/applications_app_samples.git 132git pull origin master 133``` 134 135