HarmonyOS鸿蒙NEXT人脸指纹解锁案例
HarmonyOS鸿蒙NEXT人脸指纹解锁案例 HarmonyOS Next应用开发案例(持续更新中……)
本案例完整代码,请访问:https://gitee.com/harmonyos-cases/cases/tree/master/CommonAppDevelopment/feature/faceandfingerprintunlocking
本案例已上架HarmonyOS NEXT开源组件市场,如需获取或移植该案例,可安装此插件。开发者可使用插件获取鸿蒙组件,添加到业务代码中直接编译运行。
介绍
本示例介绍了使用[@ohos.userIAM.userAuth](https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-useriam-userauth-V5)用户认证服务实现人脸或指纹识别的功能。该场景多用于需要人脸或指纹识别的安全场景。
效果图预览

使用说明:
- 点击指纹登录,弹出指纹登录场景框。
- 点击面容登录,弹出面容登录场景框。
实现步骤
实现H5页面调用自定义输入法,有两个关键点,一是需要将arkTS方法注册到h5页面中;二是要实现弹出键盘的组件。
- 发起人脸和指纹识别的方法首先需要先申请权限ohos.permission.ACCESS_BIOMETRIC。同时指定认证类型(UserAuthType)和认证等级(AuthTrustLevel),调用getAvailableStatus接口查询当前的设备是否支持相应的认证能力。
userAuth.getAvailableStatus(type === CommonConstants.FINGER ? userAuth.UserAuthType.FINGERPRINT : userAuth.UserAuthType.FACE, userAuth.AuthTrustLevel.ATL1);
- 指定用户认证相关参数AuthParam(包括挑战值、认证类型UserAuthType列表和认证等级AuthTrustLevel)、配置认证控件界面WidgetParam,调用getUserAuthInstance获取认证对象。
// 设置认证参数
let reuseUnlockResult: userAuth.ReuseUnlockResult = {
  reuseMode: userAuth.ReuseMode.AUTH_TYPE_RELEVANT,
  reuseDuration: userAuth.MAX_ALLOWABLE_REUSE_DURATION,
}
const rand = cryptoFramework.createRandom();
const len: number = CommonConstants.LEN;
const randData: Uint8Array = rand?.generateRandomSync(len)?.data;
const _this = this;
this.authParam = {
  challenge: randData,
  authType: [type === CommonConstants.FINGER ? userAuth.UserAuthType.FINGERPRINT : userAuth.UserAuthType.FACE],
  authTrustLevel: userAuth.AuthTrustLevel.ATL1,
  reuseUnlockResult: reuseUnlockResult,
};
// 获取认证对象
const userAuthInstance = userAuth.getUserAuthInstance(this.authParam, this.widgetParam);
- 调用UserAuthInstance.on接口订阅认证结果。
// 订阅认证结果
userAuthInstance.on('result', {
  onResult(result) {
    console.info(`userAuthInstance callback result: ${JSON.stringify(result)}`);
    if (result.result !== userAuth.UserAuthResultCode.SUCCESS) {
      if (type === CommonConstants.FINGER) {
        _this.fingerSwitch = !_this.fingerSwitch;
      } else {
        _this.faceSwitch = !_this.faceSwitch;
      }
    }
    // 可在认证结束或其他业务需要场景,取消订阅认证结果
    userAuthInstance.off('result');
  }
});
- 调用UserAuthInstance.start接口发起认证,通过IAuthCallback回调返回认证结果UserAuthResult。
userAuthInstance.start();
高性能知识点
不涉及
工程结构&模块类型
faceandfingerprintunlocking                // har
|--common
|   |--CommonContants.ets.ets             // 常量文件
|--view
|   |--MainPage.ets                       // 案例页面
模块依赖
不涉及
参考资料
[@ohos.userIAM.userAuth](https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-useriam-userauth-V5)
更多关于HarmonyOS鸿蒙NEXT人脸指纹解锁案例的实战教程也可以访问 https://www.itying.com/category-93-b0.html
HarmonyOS鸿蒙NEXT的人脸指纹解锁功能主要通过生物识别技术实现。该功能依赖于设备上的传感器和鸿蒙系统的安全框架。人脸识别使用摄像头捕捉用户面部特征,指纹识别则通过指纹传感器采集指纹信息。鸿蒙NEXT的生物识别模块会对采集到的数据进行加密处理,并与预先存储的生物特征进行比对。如果匹配成功,系统将解锁设备。鸿蒙NEXT的生物识别技术采用了多模态融合策略,结合人脸和指纹两种生物特征,提高识别的准确性和安全性。此外,鸿蒙NEXT的生物识别模块还支持活体检测,防止伪造攻击。整个解锁过程在设备本地完成,确保用户数据的安全性。鸿蒙NEXT的生物识别API为开发者提供了标准化的接口,便于集成到各类应用中。
更多关于HarmonyOS鸿蒙NEXT人脸指纹解锁案例的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙NEXT系统中,人脸指纹解锁功能是通过生物识别技术实现的。系统首先调用摄像头或指纹传感器采集用户的面部或指纹信息,然后与预先存储的生物特征进行比对。若匹配成功,则解锁设备。开发者可通过调用BiometricPrompt类实现该功能,确保用户身份验证的安全性和便捷性。此外,HarmonyOS提供了丰富的API,支持定制化解锁界面和逻辑,以满足不同应用场景的需求。
 
        
       
                   
                   
                  

