• Home
Name Date Size #Lines LOC

..--

AppScope/06-May-2025-3633

entry/06-May-2025-1,104913

hvigor/06-May-2025-2422

screenshots/device/06-May-2025-

.gitignoreD06-May-2025100 77

README_zh.mdD06-May-20253.2 KiB7147

build-profile.json5D06-May-20251 KiB4341

hvigorfile.jsD06-May-2025168 21

hvigorwD06-May-20252.1 KiB6228

hvigorw.batD06-May-20252 KiB7356

oh-package.json5D06-May-2025817 2725

ohosTest.mdD06-May-2025422 96

README_zh.md

1# 图案密码锁组件
2
3### 介绍
4
5本示例展示了图案密码锁组件的使用,实现了密码设置、验证和重置功能。
6
7图案密码锁组件:以宫格图案的方式输入密码,用于密码验证。手指触碰图案密码锁时开始进入输入状态,手指离开屏幕时结束输入状态并向应用返回输入的密码。
8
9使用到用户首选项接口[@ohos.data.preferences](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-arkdata/js-apis-data-preferences.md) 异步获取用户设定过的密码。
10
11
12### 效果预览
13|设置密码页|输入密码页|主页|
14|---|---|---|
15|![main](screenshots/device/set_password.png)  |![main](screenshots/device/input.png)  |![main](screenshots/device/home.png)  |
16
17使用说明:
18
191.首次进入时需要设置密码,需要两次输入密码相同后点击**设置密码**进行设置,如果第二次输入密码和第一次输入密码不同,会提示重新输入。
20
212.设置密码后,需要输入密码解锁,退出应用后重新进入应用,需要再次输入密码验证,密码验证成功进入主页。
22
233.设置密码后,在输入密码界面有**重置密码**按钮,点击后需要输入旧密码,旧密码验证成功后开始设置新的密码。
24
25### 工程目录
26
27```
28entry/src/main/ets/
29|---model
30|   |---PreferencesUtils.ts             // 定义用户存过的密码
31|---pages
32|   |---Home.ets                        // 输入密码成功后进入的首页页面
33|   |---Index.ets                       // 密码锁页面,定义密码验证逻辑
34```
35
36### 具体实现
37* 在pages/Home.ets中定义密码锁组件,通过定义两个变量isHasPass:是否已经设过密码;isReset:是否需要重置密码;
38* 密码验证分为几种情况:[源码](entry/src/main/ets/pages/Home.ets) 参考。
39  1. 首次进入页面, 通过aboutToAppear()初始化调用preferences.getPreferences()获取密码,此时defaultPassword='null',isHassPass=false,需设置密码并确认密码;
40  2. 已经设过密码: 通过aboutToAppear()初始化调用preferences.getPreferences()获取密码,此时defaultPassword='oldPassword',isHassPass=true,页面渲染重置密码text()。
41     需输入密码和defaultPassword比较,正确后跳转相应页面,若失败提示密码错误,需重新输入密码。
42  3. 点击重置密码,此时组件清除旧密码,即defaultPassword='null',此时无密码,走首次无密码流程。
43* 在pages/index.ets中定义密码通过后的首页页面,[源码](entry/src/main/ets/pages/Index.ets) 参考。
44
45### 相关权限
46
47不涉及。
48
49### 依赖
50
51不涉及。
52
53### 约束与限制
54
551.本示例仅支持标准系统上运行, 支持设备:RK3568 。
56
572.本示例为Stage模型, 已适配API version 9版本SDK,版本号:3.2.11.9 。
58
593.本示例需要使用DevEco Studio 3.1 Beta2 (Build Version: 3.1.0.400, built on April 7, 2023)及以上版本才可编译运行。
60
61### 下载
62
63如需单独下载本工程,执行如下命令:
64
65````
66git init
67git config core.sparsecheckout true
68echo code/Solutions/Tools/PatternLock/ > .git/info/sparse-checkout
69git remote add origin https://gitee.com/openharmony/applications_app_samples.git
70git pull origin master
71````