• Home
Name Date Size #Lines LOC

..--

AppScope/22-Mar-2025-3432

entry/22-Mar-2025-2,5952,374

hvigor/22-Mar-2025-2019

screenshots/22-Mar-2025-

.gitignoreD22-Mar-2025119 1111

README_zh.mdD22-Mar-20259.4 KiB13587

build-profile.json5D22-Mar-20251.1 KiB4342

hvigorfile.tsD22-Mar-2025768 171

oh-package.json5D22-Mar-2025896 2827

ohosTest.mdD22-Mar-20252.1 KiB128

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.onFillRequestAutoFillExtensionAbility.onSaveRequestautoFillManager.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