| Name | Date | Size | #Lines | LOC | ||
|---|---|---|---|---|---|---|
| .. | - | - | ||||
| AppScope/ | 06-May-2025 | - | 36 | 33 | ||
| entry/ | 06-May-2025 | - | 1,104 | 913 | ||
| hvigor/ | 06-May-2025 | - | 24 | 22 | ||
| screenshots/device/ | 06-May-2025 | - | ||||
| .gitignore | D | 06-May-2025 | 100 | 7 | 7 | |
| README_zh.md | D | 06-May-2025 | 3.2 KiB | 71 | 47 | |
| build-profile.json5 | D | 06-May-2025 | 1 KiB | 43 | 41 | |
| hvigorfile.js | D | 06-May-2025 | 168 | 2 | 1 | |
| hvigorw | D | 06-May-2025 | 2.1 KiB | 62 | 28 | |
| hvigorw.bat | D | 06-May-2025 | 2 KiB | 73 | 56 | |
| oh-package.json5 | D | 06-May-2025 | 817 | 27 | 25 | |
| ohosTest.md | D | 06-May-2025 | 422 | 9 | 6 |
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| | | | 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````