美文网首页
iOS LAPolicy指纹解锁

iOS LAPolicy指纹解锁

作者: 倪大头 | 来源:发表于2018-05-09 12:16 被阅读17次

LAPolicy是一个枚举,它提供两个值:LAPolicyDeviceOwnerAuthenticationWithBiometrics和LAPolicyDeviceOwnerAuthentication.

LAPolicyDeviceOwnerAuthenticationWithBiometrics支持iOS8以上系统,LAPolicyDeviceOwnerAuthentication支持iOS9以上系统,LAPolicyDeviceOwnerAuthentication同时支持TouchID和设备密码认证。

使用需导入:

#import <LocalAuthentication/LocalAuthentication.h>
//判断系统版本
if (NSFoundationVersionNumber < NSFoundationVersionNumber_iOS_8_0) {
    [self showRequestError:self.view withReason:@"系统版本不支持TouchID"];
    return;
}
        
LAContext *context = [[LAContext alloc]init];
context.localizedFallbackTitle = @"输入密码";
NSError *error = nil;
        
//判断是否可以使用TouchID
if ([context canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&error]) {
    [context evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:@"Home键验证已有手机指纹" reply:^(BOOL success, NSError * _Nullable error) {
        if (success) {
            dispatch_async(dispatch_get_main_queue(), ^{
                messageLabel.text = @"解锁成功";
            });
        }else {
            switch (error.code) {
                case LAErrorAuthenticationFailed:
                {
                    dispatch_async(dispatch_get_main_queue(), ^{
                        messageLabel.text = @"验证失败";
                    });
                    break;
                }
                case LAErrorUserCancel:
                {
                    dispatch_async(dispatch_get_main_queue(), ^{
                        messageLabel.text = @"用户取消验证";
                    });
                    break;
                }
                case LAErrorUserFallback:
                {
                    dispatch_async(dispatch_get_main_queue(), ^{
                        messageLabel.text = @"用户选择手动输入密码";
                            });
                    break;
                }
                case LAErrorSystemCancel:
                {
                    dispatch_async(dispatch_get_main_queue(), ^{
                        messageLabel.text = @"被系统取消(如遇来电,锁屏,按了Home键等)";
                    });
                    break;
                }
                case LAErrorPasscodeNotSet:
                {
                    dispatch_async(dispatch_get_main_queue(), ^{
                        messageLabel.text = @"用户未设置密码";
                    });
                    break;
                }
                case LAErrorTouchIDNotEnrolled:
                {
                    dispatch_async(dispatch_get_main_queue(), ^{
                        messageLabel.text = @"用户未设置TouchID";
                    });
                    break;
                }
                case LAErrorTouchIDNotAvailable:
                {
                    dispatch_async(dispatch_get_main_queue(), ^{
                        messageLabel.text = @"TouchID无效";
                    });
                    break;
                }
                case LAErrorTouchIDLockout:
                {
                    dispatch_async(dispatch_get_main_queue(), ^{
                        messageLabel.text = @"多次验证失败,TouchID被锁定";
                    });
                    break;
                }
                case LAErrorAppCancel:
                {
                    dispatch_async(dispatch_get_main_queue(), ^{
                        messageLabel.text = @"被APP取消(如切换到后台)";
                    });
                    break;
                }
                case LAErrorInvalidContext:
                {
                    dispatch_async(dispatch_get_main_queue(), ^{
                        messageLabel.text = @"LAContext对象无效";
                    });
                    break;
                }
                            
                default:
                   break;
            }
       }
    }];
}else {
    messageLabel.text = @"当前设备不支持TouchID";
}

相关文章

  • iOS LAPolicy指纹解锁

    LAPolicy是一个枚举,它提供两个值:LAPolicyDeviceOwnerAuthenticationWit...

  • iOS指纹解锁和手势解锁

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

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

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

  • iOS 指纹解锁

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

  • 求助问题

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

  • iOS 指纹解锁

    最近公司的 APP 涉及到指纹识别这块,之前没有研究过,现在简单总结下... 1.基本知识点 2.代码 完成这篇功...

  • iOS指纹解锁

    我们都知道iPhone支持指纹解锁,之前没有在项目中应用过,还以为有多么神秘,没想到这么简单!系统已经为我们提供了...

  • iOS指纹解锁

    苹果iPhone5s后开始推出指纹解锁功能,很大的提升了用户在密码解锁中的用户体验,而且苹果的指纹解锁技术不但操作...

  • iOS指纹解锁

    http://www.cocoachina.com/bbs/read.php?tid=205169

  • ios指纹解锁

    https://github.com/wangkecheng/WS_TouchID_Demo

网友评论

      本文标题:iOS LAPolicy指纹解锁

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