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

简介

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

依赖库

#import 

实现过程

  • 使用类
    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

你可能感兴趣的:(实现TouchID指纹解锁(图文并茂))