鸿蒙harmony 手势密码

news/2025/2/13 20:41:22/

1.效果图 

2.设置手势页面代码

/*** 手势密码设置页面*/
@Entry
@Component
struct SettingGesturePage {/*** PatternLock组件控制器*/private patternLockController: PatternLockController = new PatternLockController()/*** 用来保存提示文本信息*/@State message: string = '请绘制解锁图案'/*** 用来保存手势密码*/@State password: Array<number> = []build() {Column({ space: 10 }) {Blank().layoutWeight(1)// 提示Text(this.message).fontSize(16).fontColor(Color.Red)// 手势组件PatternLock(this.patternLockController).sideLength(300).circleRadius(15).pathStrokeWidth(15).autoReset(true).margin({ top: 30, bottom: 30 }).onPatternComplete((input: Array<number>) => {// 根据实际需求修改条件if (input === null || input === undefined || input.length < 5) {this.message = '密码长度需要大于5'return}if (this.password.length > 0) {if (this.password.toString() === input.toString()) {this.password = input// 保存密码this.savePassword()} else {this.message = '密码与上一次不一致,请重新输入'this.patternLockController.reset()}} else {this.password = inputthis.message = '再次输入手势密码'this.patternLockController.reset()}})Blank().layoutWeight(2)}.width('100%').height('100%')}/*** 保存密码,将手势密码发送到后端保存*/savePassword() {// 最终的字符串密码let defaultPassword:string = this.password.toString()/*** 然后根据实际需要是否对字符串密码进行加密,把密码传到后端服务进行保存即可*/// todo 调取后端接口代码。。。。}
}

3.手势登录页面代码

/*** 手势密码登录页面*/
@Entry
@Component
struct GestureLoginPage {private patternLockController: PatternLockController = new PatternLockController()/*** 提示信息*/@State tips: string = ' '/*** 密码数组*/@State passwordArray: Array<number> = []/*** 字符串密码*/@State password: string = ''aboutToAppear() {}build() {Column() {Blank().layoutWeight(1)// 提示Text(this.tips).fontSize(16).fontColor(Color.Red).margin({ top: 20 })// 手势组件PatternLock(this.patternLockController).sideLength(300).circleRadius(15).pathStrokeWidth(15).autoReset(true).margin({ top: 20, bottom: 50 }).onPatternComplete((input: Array<number>) => {if (input === null || input === undefined || input.length < 5) {this.tips = '密码长度需要大于5'return}this.passwordArray = input/*** 根据实际业务调用登录方法/或接口*/this.doGestureLogin()})Blank().layoutWeight(1)}.width('100%').height('100%').justifyContent(FlexAlign.Start)}/*** 手势登录接口*/doGestureLogin() {this.password = this.passwordArray.toString()// todo 登录方法业务逻辑}
}


http://www.ppmy.cn/news/1570647.html

相关文章

Academy Sports + Outdoors EDI:体育零售巨头的供应链“中枢神经”

Academy Sports Outdoors 是美国领先的体育用品及户外装备零售商&#xff0c;拥有250线下门店及电商平台&#xff0c;年营收超60亿美元。作为全渠道零售商&#xff0c;其供应链面临独特挑战&#xff1a; 海量SKU管理&#xff1a;超50万SKU&#xff08;从健身器材到露营装备&a…

如何设置爬虫的IP代理?

在爬虫开发中&#xff0c;设置IP代理是避免被目标网站封禁、提升爬取效率和保护隐私的重要手段。以下是设置爬虫IP代理的详细方法和注意事项&#xff1a; 一、获取代理IP 免费代理IP&#xff1a; 可以通过一些免费的代理IP网站获取代理IP&#xff0c;但这些IP的稳定性和速度通…

c/c++蓝桥杯经典编程题100道(9)数组排序

数组排序 ->返回c/c蓝桥杯经典编程题100道-目录 目录 数组排序 一、题型解释 二、例题问题描述 三、C语言实现 解法1&#xff1a;冒泡排序&#xff08;难度★&#xff09; 解法2&#xff1a;选择排序&#xff08;难度★&#xff09; 解法3&#xff1a;快速排序&#…

AtCoder Beginner Contest 392(A-G)题解

A-B&#xff1a;略 C&#xff1a;可能题意比较绕&#xff0c;第i个答案就是穿着i这个号码&#xff08;也就是Q[j] i,这个时候j这个位置&#xff09;&#xff0c;看向的那个人的号码&#xff08;也就是P[j]) 代码&#xff1a; void solve() {int n;cin >> n;vi p(n 1…

Qt:Qt Creator项目创建

目录 认识Qt Creator Qt Creator概览 使用Qt Creator新建项目 选择项目模板 选择项目路径 选择构建系统 填写类信息设置界面 选择语言和翻译文件 选择Qt套件 选择版本控制系统 最终效果 认识Qt Creator Qt Creator概览 从开始菜单或者快捷方式打开Qt Creator集成开…

10vue3实战-----实现登录的基本功能

10vue3实战-----实现登录的基本功能 1.基本页面的搭建2.账号登录的验证规则配置3.点击登录按钮4.表单的校验5.账号的登录逻辑和登录状态保存6.定义IAccount对象类型 1.基本页面的搭建 大概需要搭建成这样子的页面: 具体的搭建界面就不多讲。各个项目都有自己的登录界面&#…

maven-依托管理

依赖配置 依赖: 之当前项目运行所需要的jar包,一个项目可以引入多个依赖 依赖传递 依赖具有传递性 直接依赖: 在当前项目中通过依赖配置建立的依赖关系 间接依赖: 被依赖的资源如果依赖其他资源, 当前项目间接依赖其他资源 如果A不想要B依赖的 x 资源, 就在A依赖B的标签内加…

NUMA 配置对 Redis 使用的影响:提升性能的秘密武器

NUMA 配置对 Redis 使用的影响:提升性能的秘密武器 在高性能数据库部署中,Redis 已成为不少企业的缓存与消息队列首选。然而,在大规模服务器上运行 Redis 时,如果不注意底层硬件架构,性能就可能大打折扣。今天,我们就来聊聊 NUMA(Non-Uniform Memory Access,非统一内存…