HarmonyOS 鸿蒙Next 手势密码绘制功能

发布于 1周前 作者 ionicwang 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 手势密码绘制功能

手势密码绘制功能,设置手势,第二次验证设置手势等。希望能给一个demo 密码登录方式手势密码绘制登录

2 回复

可以参考图案密码锁组件,是否满足您的需求 https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-basic-components-patternlock-V5#子组件

 

// xxx.ets

import { LengthUnit } from '@kit.ArkUI'

@Entry

@Component

struct PatternLockExample {

  @State passwords: Number[] = []

  @State message: string = 'please input password!'

  private patternLockController: PatternLockController = new PatternLockController()

  build() {

    Column() {

      Text(this.message).textAlign(TextAlign.Center).margin(20).fontSize(20)

      PatternLock(this.patternLockController)

        .sideLength(200)

        .circleRadius(9)

        .pathStrokeWidth(18)

        .activeColor('#B0C4DE')

        .selectedColor('#228B22')

        .pathColor('#90EE90')

        .backgroundColor('#F5F5F5')

        .autoReset(true)

        .activateCircleStyle({

          color: '#90EE90',

          radius: { value: 16, unit: LengthUnit.VP },

          enableWaveEffect: true

        })

        .onDotConnect((index: number) => {

          console.log("onDotConnect index: " + index)

        })

        .onPatternComplete((input: Array<number>) => {

          // 输入的密码长度小于5时,提示重新输入

          if (input === null || input === undefined || input.length < 5) {

            this.message = 'The password length needs to be greater than 5, please enter again.'

            return

          }

          // 判断密码长度是否大于0

          if (this.passwords.length > 0) {

            // 判断两次输入的密码是否相同,相同则提示密码设置成功,否则提示重新输入

            if (this.passwords.toString() === input.toString()) {

              this.passwords = input

              this.message = 'Set password successfully: ' + this.passwords.toString()

              this.patternLockController.setChallengeResult(PatternLockChallengeResult.CORRECT)

            } else {

              this.message = 'Inconsistent passwords, please enter again.'

              this.patternLockController.setChallengeResult(PatternLockChallengeResult.WRONG)

            }

          } else {

            // 提示第二次输入密码

            this.passwords = input

            this.message = "Please enter again."

          }

        })

      Button('Reset PatternLock').margin(30).onClick(() => {

        // 重置密码锁

        this.patternLockController.reset()

        this.passwords = []

        this.message = 'Please input password'

      })

    }.width('100%').height('100%')

  }

}

也可以参考: https://gitee.com/harmonyos_samples/pattern-lock

更多关于HarmonyOS 鸿蒙Next 手势密码绘制功能的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


HarmonyOS 鸿蒙Next 手势密码绘制功能主要通过其内置的手势识别模块与图形绘制库实现。该功能允许用户在设备上通过特定手势进行解锁或身份验证,增强了用户交互的安全性和便捷性。

在HarmonyOS中,手势密码绘制功能通常涉及以下几个核心步骤:

  1. 初始化画布:利用HarmonyOS提供的图形绘制接口,在屏幕上创建一个用于绘制手势密码的画布区域。

  2. 手势检测:通过HarmonyOS的手势识别系统,实时检测用户在画布上的手势输入,包括起点、路径和终点等关键信息。

  3. 绘制手势:根据检测到的手势信息,在画布上绘制出相应的轨迹,同时记录用户的输入轨迹。

  4. 验证手势:当用户完成手势输入后,系统将用户输入的轨迹与预设的手势密码进行比对,以验证身份。

  5. 安全处理:为确保安全性,手势密码的绘制和验证过程应在系统内部进行,避免敏感信息泄露。同时,对于多次输入错误的情况,系统应采取相应的安全措施,如锁定设备或要求用户进行其他身份验证。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部