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

iOS实现生物识别

1. info.plist中添加权限申请

<key>NSFaceIDUsageDescription</key>
<string>APP would like to use Face ID</string>
<key>NSBiometricUsageDescription</key>
<string>APP would like to use Touch ID</string>

2. 添加库

Build Phases → Link Binary With Libraries → LocalAuthentication.framework

3. 实现代码

#import <LocalAuthentication/LocalAuthentication.h>

// 检查是否支持认证
-(BOOL) isSupportBiometricCheck {
    LAContext *context = [[LAContext alloc] init];
    NSError *error = nil;
    
    // 检查设备是否支持生物识别认证
    if ([context canEvaluatePolicy:LAPolicyDeviceOwnerAuthentication error:&error]) {
        return true;
    } else {
        return false;
    }
}

// 认证
// title:标题 eg.生物识别登录
// subTitle:副标题 eg.使用生物识别凭证登录
// negativeText:取消文本 eg.取消
- (void)biometricCheck:(CallSN)cbSn title:(NSString *)title
              subTitle:(NSString *)subTitle
        negativeButton:(NSString *)negativeText {
    LAContext *context = [[LAContext alloc] init];
    
    NSString *localizedReason = [NSString stringWithFormat:@"%@\\n%@", title, subTitle];
    
    [context evaluatePolicy:LAPolicyDeviceOwnerAuthentication
            localizedReason:localizedReason
                      reply:^(BOOL success, NSError * _Nullable error) {
        dispatch_async(dispatch_get_main_queue(), ^{
            if (success) {
                NSLog(@"认证成功");
            } else {
                NSLog(@"认证失败,原因:%@", error.description);
            }
        });
    }];
}

目前来看LAPolicyDeviceOwnerAuthentication优于LAPolicyDeviceOwnerAuthenticationWithBiometrics,因为LAPolicyDeviceOwnerAuthenticationWithBiometrics在验证失败时,需要重新输入一次锁屏密码或者调用LAPolicyDeviceOwnerAuthentication输入密码才可以再次被正常调用。否则直接返回生物特征已锁定,而引起认证失败。


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

相关文章:

  • 【k8s应用管理】kubernetes 安全机制
  • 【prompt实战】旅行攻略顾问
  • PHP 基础介绍
  • 青少年编程与数学 02-009 Django 5 Web 编程 14课题、命名空间
  • 2024-arXiv-LlamaFactory: 统一高效微调100多种语言模型
  • 英码科技基于昇腾算力实现DeepSeek离线部署
  • 第十五届蓝桥杯嵌入式省赛真题(满分)
  • 【办公类-91-01】20250214“每周安排表”批量填写——数字“年月日”、文字“休息、节假日”
  • SYN-TFO伪造攻击.c
  • 算法面试题
  • 17.企业级知识图谱中的知识库全景解析(基本概念、 5W2H视角知识库、存储格式分类与技术对比、实践路径与架构设计、案例)
  • 《On Java中文版基础卷+进阶卷》
  • typecho快速发布文章
  • Acwing-基础算法课笔记之基础算法(双指针)
  • 系统不是基于UEFI的win11,硬盘格式MBR,我如何更改为GPT模式添加UEFI启动?
  • 借助天工AI 生成产品彩页体验 (5G 远距CPE产品彩页)
  • Centos搭建python环境
  • 【Qt】之【Linux】linux下实现开机自启Qt应用程序
  • 获取网站君子协议(robots协议)
  • 深入解析HTTP OPTIONS请求与JAX-RS实现