当前位置: 首页 > article >正文

鸿蒙手势密码

 手势密码可通过 PatternLock 组件实现

PatternLock()
  .sideLength(320)// 宽高
  .circleRadius(12)// 圆点半径
  .pathStrokeWidth(10)// 线宽度
  .regularColor('#ffd9d9d9')// 未选中圆点色
  .activeColor('#800a59f7')// 经过圆点色
  .selectedColor('#ff0a59f7')// 选中圆点色
  .pathColor('#cc0a59f7')// 线颜色
  .onDotConnect(() => {
    // 密码输入选中宫格圆点时触发该回调
  })
  .onPatternComplete((input: number[]) => {
    // 密码输入结束时触发该回调
  })

 

手势校验基础

// 手势组件控制器
private patternLockController: PatternLockController = new PatternLockController()

setErrorMessage(message: string) {
  this.errorMessage = message
  this.patternLockController.setChallengeResult(PatternLockChallengeResult.WRONG)
}

clearErrorMessage() {
  this.errorMessage = ''
  this.patternLockController.setChallengeResult(PatternLockChallengeResult.CORRECT)
}

// 重置图形密码和临时密码
resetPattern() {
  // 每次输入结束后,自动清空界面图形
  this.timeoutID = setTimeout(() => {
    // 重置图形密码
    this.patternLockController.reset()
    // 重置临时密码
    this.inputPassword = []
  }, 1000)
}

// 手势密码输入完成
onPatternComplete(input: number[]) {
  // 保存临时密码
  this.inputPassword = input
  // 1. 校验长度,输入长度小于 4,提示重新输入
  if (this.inputPassword.length < 4) {
    // 设置错误提示
    this.setErrorMessage('手势密码长度不能小于4位,请重新输入')
  } else {
    // 清空错误提示
    this.clearErrorMessage()
    // 2. 长度符合规范,同时判断是否为首次输入
    if (this.firstPassword.length === 0) {
      // 2.1 首次输入,直接保存当前输入的密码
      this.firstPassword = input
    } else {
      // 2.2 非首次输入,需判断两次输入的密码是否相同
      
    }
  }
  // 每次输入结束后,自动清空界面图形
  this.resetPattern()
}

build(){
  PatternLock(this.patternLockController)
  .sideLength(320)// 宽高
  .circleRadius(12)// 圆点半径
  .pathStrokeWidth(10)// 线宽度
  .regularColor('#d9d9d9')// 未选中圆点色
  .activeColor('#800a59f7')// 经过圆点色
  .selectedColor(this.errorMessage && this.inputPassword.length !== 0 ? '#ffff5e5d' : '#ff0a59f7')// 选中圆点色
  .pathColor(this.errorMessage && this.inputPassword.length !== 0 ? '#ccff5e5d' : '#cc0a59f7')// 线颜色
  .onDotConnect(() => {
    // 密码输入选中宫格圆点时触发该回调
    clearTimeout(this.timeoutID)
  })
  .onPatternComplete((input: number[]) => {
    this.onPatternComplete(input)
  })
}


http://www.kler.cn/a/412680.html

相关文章:

  • Web 学习笔记 - 网络安全
  • gRPC 双向流(Bidirectional Streaming RPC)的使用方法
  • Jmeter中的配置原件
  • 自定义协议
  • 蓝网科技临床浏览系统存在SQL注入漏洞
  • 探秘嵌入式位运算:基础与高级技巧
  • Java入门:17.正则表达式,String的intern方法,StringBuilder可变字符串特点与应用,+连接字符串特点--001
  • 循环神经网络(RNN)在自然语言处理(NLP)中的应用
  • MySQL【11】事务
  • 【简单好抄保姆级教学】javascript调用本地exe程序(谷歌,edge,百度,主流浏览器都可以使用....)
  • Git 进程占用报错-解决方案
  • 谷歌浏览器Chrome打开百度很慢,其他网页正常的解决办法,试了很多,找到了适合的
  • STM32 L4系列单片机低功耗模式(STOP模式)
  • 【TQ2440】02 串口连接进入u-boot
  • 【CSP CCF记录】201812-1第15次认证 小明上学
  • leecode56.合并区间
  • 华财术_号卡分销平台讲解(四大运营商+手机卡)
  • 【圣明先森】SPP集合划分问题(第二集)
  • 【halcon】Metrology工具系列之 get_metrology_object_model_contour
  • 关于人工智能
  • 365天深度学习训练营-第P6周:VGG-16算法-Pytorch实现人脸识别
  • 多线程编程:概念、原理与实践
  • EXCEL中的科学计数法:为何存在与用户的无奈
  • 排序算法之选择排序篇
  • GaussDB高智能--智能优化器介绍
  • 【人工智能】Python常用库-PyTorch常用方法教程