美文网首页
iOS 指纹解锁与数字解锁

iOS 指纹解锁与数字解锁

作者: LetBe | 来源:发表于2018-08-29 09:18 被阅读0次

不得不说,关于指纹解锁这儿的api 真的很方便,刚刚给自己的项目加上了指纹,所以记录一下

 //1.判断版本

   if ([UIDevice currentDevice].systemVersion.floatValue >= 8.0) {
    //可以使用指纹识别 5S 以后的机型
    //2.判断是否可以使用指纹识别功能
    LAContext  *context = [[LAContext alloc]init];
    
    //2.判断能否使用
    //Evaluate 评估
    //Policy 策略
    
    
    if ([context canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:nil] ) {
        
        __weak typeof(self) weakSelf = self;
        //3.开始启用指纹识别
        [context evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:@"指纹登录" reply:^(BOOL success, NSError * _Nullable error) {
            __strong typeof(weakSelf) strongSelf = weakSelf;
            //判断是否成功
            if (success) {
                NSLog(@"验证成功!");
                
            
                dispatch_async(dispatch_get_main_queue(), ^{
                  //此处进行其他操作,要放在主线程中
                });
              
                
            }else if(error != nil)
            {
                [self TouchIDResult:error.code];
            }
            
        }];
        
    }else
    {
        //设置 密码解锁  
           LAContext *context = [[LAContext alloc] init];
             [context evaluatePolicy:LAPolicyDeviceOwnerAuthentication localizedReason:@"请输入设备密码" reply:^(BOOL success, NSError * _Nullable error) {
            NSLog(@"error = %@", error);
            if (success) {
  //再次调用 调起指纹的方法
                [self createUserFingerprint];
            }
            
        }];
    }
}

error code分别对应的 解释:

 -(void)TouchIDResult:(LAError)code
{
   NSString *result = nil;

switch (code)
{
    case LAErrorAuthenticationFailed:
    {
        result = @"指纹不匹配,请用账号密码登录";
        break;
    }
    case LAErrorUserCancel:
    {
            result = @"用户取消了Touch ID验证";
        break;
    }
    case LAErrorUserFallback:
    {
           result = @"用户不想进行Touch ID验证,想进行输入密码操作";
        
        dispatch_async(dispatch_get_main_queue(), ^{
            //用户选择输入密码,可以调起app自己的密码系统,也可调起手机的密码系统
            
        });
        break;
    }
    case LAErrorSystemCancel:
    {
            result = @"切换到其他APP,系统取消验证Touch ID";
        break;
    }
    case LAErrorPasscodeNotSet:
    {
        result = @"您没有在设备Settings中设定密码";
        break;
    }
    case LAErrorTouchIDNotAvailable:
    {
        result = @"您的设备不支持Touch ID";
        break;
    }
    case LAErrorTouchIDNotEnrolled:
    {
        result = @"您的设备没有进行Touch ID 指纹注册";
        break;
    }
    case LAErrorTouchIDLockout:
    {
            result = @"touchid被锁";
        
        // 这里是验证错误次数上限了,touchid被锁,这时候需要调起系统的密码验证就行解锁touchid,不然touchid就不能使用了
        LAContext* context = [LAContext new];
        NSString* result = @"请输入手机密码";
        //LAPolicyDeviceOwnerAuthentication:手机密码验证
        [context evaluatePolicy:LAPolicyDeviceOwnerAuthentication localizedReason:result reply:^(BOOL success, NSError *error){
            if (success)
            {
                [self createUserFingerprint];
            }
            else
            {
                [self TouchIDResult:error.code];
            }
        }];
    }
    case LAErrorAppCancel:
    {
        result = @"应用取消验证";
        break;
    }
    case LAErrorInvalidContext:
    {
        result = @"";
        break;
    }
}

//回到主线程
dispatch_async(dispatch_get_main_queue(), ^{
    
    [self showText:result];
});
 }

相关文章

  • iOS指纹解锁和手势解锁

    iOS指纹解锁和手势解锁 iOS指纹解锁和手势解锁

  • iOS 指纹解锁与数字解锁

    不得不说,关于指纹解锁这儿的api 真的很方便,刚刚给自己的项目加上了指纹,所以记录一下 error code分别...

  • iOS15实现面容ID解锁和指纹解锁

    iOS15实现面容ID解锁和指纹解锁

  • 指纹解锁的原理

    指纹/人脸解锁的原理是,采集指纹自然信息,转换成数字信息,储存成密码;解锁,读取指纹信息,转换成数字信息,与密码比...

  • 求助问题

    手机升级了ios10.1系统后怎么解锁时没有了密码解锁只有指纹解锁呢,怎么把密码解锁掉出来?

  • 指纹(杨乐生)

    指纹(张三兴传奇之十五)文/杨乐生 张三兴换手机后,也时髦地将数字密码解锁设置成指纹解锁。在解锁时,不...

  • Android-指纹解锁技术

    什么是指纹解锁技术 指纹解锁技术原理理解 指纹解锁技术的优势和缺点 在Android中的应用开发 什么是指纹解锁技...

  • iOS 指纹解锁

    前言:随着指纹解锁的普及,越来越多的应用开始使用指纹解锁、指纹支付.不过作为iOS开发,这倒不难,因为苹果为我们封...

  • 厉害!手机丢了,陌生人竟有办法解开我们的指纹锁?

    指纹解锁,方便又安全,除了自己无人解锁查看手机内容与隐私,该有多好!然鹅,这个时候同事悠悠地来一句:指纹解锁根本就...

  • iOS学习笔记14 指纹验证TouchID简单应用1

    指纹验证这个功能现在在一些app中经常常见,常常与数字解锁,手势解锁联合起来使用。前几天接到说实现一个指纹验证的功...

网友评论

      本文标题:iOS 指纹解锁与数字解锁

      本文链接:https://www.haomeiwen.com/subject/ycqhwftx.html