实现TouchID指纹解锁(图文并茂)

简介

iOS8.0之后Touch ID的API开发给开发,最低支持的机型为iPhone 5s,最低支持系统为ios 8,虽然安装iOS 7系统的5s机型可以使用系统提供的指纹解锁功能,但由于API并未开放,所以理论上第三方软件不可使用。

依赖库

#import <LocalAuthentication/LocalAuthentication.h>

实现过程

  • 使用类
    LAContext 指纹验证操作对象

  • 判断设备是否支持TouchID的

- (BOOL)canEvaluatePolicy:(LAPolicy)policy error:(NSError * __autoreleasing *)error __attribute__((swift_error(none)));
  • 调用TouchID验证
- (void)evaluatePolicy:(LAPolicy)policy
      localizedReason:(NSString *)localizedReason
                reply:(void(^)(BOOL success, NSError * __nullable error))reply;

  • 属性设置

localizedFallbackTitle:用于设置左边的按钮的名称,默认是Enter Password.
localizedReason:用于设置提示语,表示为什么要使用Touch ID

代码

//初始化上下文对象
    LAContext* context = [[LAContext alloc] init];
    //错误对象
    NSError* error = nil;
    
    //首先使用canEvaluatePolicy 判断设备支持状态
    if ([context canEvaluatePolicy: LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&error])
    {
        //支持指纹验证
        [context evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics
                localizedReason:@"我要解锁"
                          reply:^(BOOL succes, NSError *error) {
             if (succes) {
                 //验证成功,返回主线程处理
                 NSLog(@"验证成功");
                 dispatch_async(dispatch_get_main_queue(), ^{
                     backSucces(succes);
                 });
                 
             } else {
                 NSLog(@"验证失败");
                 NSLog(@"%@",error.localizedDescription);
                
             }
         }];
    }else
    {
        NSLog(@"不支持指纹识别,LOG出错误详情");
        NSLog(@"%@",error.localizedDescription);
       
        
    }

几乎没有什么难度,使用确实很简单!希望可以帮到大家demo

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容