iOS开发之指纹识别和面容识别应用

因为项目中有使用支付功能,现在需要加入密码支付。然后产品就想要加入指纹识别和面容识别来进行支付认证。就在网上找了资料来总结。

首先我们需要加入依赖库#import<LocalAuthentication/LocalAuthentication.h>

然后我们要判断一下手机系统,因为iOS8以后才有了指纹识别。不过像我们应用我设置了iOS9以后才能下载,就自然过滤了一些机型系统。然后直接上代码

// 判断设备是否支持指纹识别

    LAContext *context = [[LAContext alloc] init];

    NSError*error =nil;

    if ([context canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&error]) {

        //支持 localizedReason为alert弹框的message内容

        [contextevaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:@"请验证已有指纹" reply:^(BOOL success, NSError * _Nullable error) {

            if(success) {

                NSLog(@"验证通过");

            }else{

                NSLog(@"验证失败:%@",error.description);

                switch(error.code) {

                    caseLAErrorSystemCancel:

                    {

                        NSLog(@"系统取消授权,如其他APP切入");

                        //系统取消授权,如其他APP切入

                        break;

                    }

                    caseLAErrorUserCancel:

                    {

                        //用户取消验证Touch ID

                        NSLog(@"用户取消验证Touch ID");

                        break;

                    }

                    case LAErrorAuthenticationFailed:

                    {

                        //授权失败

                        NSLog(@"授权失败");

                        break;

                    }

                    caseLAErrorPasscodeNotSet:

                    {

                        //系统未设置密码

                        NSLog(@"系统未设置密码");

                        break;

                    }

                    case LAErrorBiometryNotAvailable:

                    {

                        //设备Touch ID不可用,例如未打开

                        NSLog(@"设备Touch ID不可用,例如未打开");

                        break;

                    }

                    case LAErrorBiometryNotEnrolled:

                    {

                        //设备Touch ID不可用,用户未录入

                        NSLog(@"设备Touch ID不可用,用户未录入");

                        break;

                    }

                    caseLAErrorUserFallback:

                    {

                        [[NSOperationQueue mainQueue] addOperationWithBlock:^{

                            //用户选择输入密码,切换主线程处理

                            NSLog(@"用户选择输入密码,切换主线程处理");


                        }];

                        break;

                    }

                    default:

                    {

                        [[NSOperationQueue mainQueue] addOperationWithBlock:^{

                            //其他情况,切换主线程处理

                            NSLog(@"其他情况,切换主线程处理");

                        }];

                        break;

                    }

                }

            }

        }];

    }else{

        NSLog(@"不支持指纹识别");

        NSLog(@"error : %@",error.localizedDescription);

    }

这里面就直接筛选了用户在识别中的一系列问题,识别错误次数,取消识别,改密码识别等等。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 自iPhone 5S始,苹果公司推出了全新生物安全识别技术---指纹识别验证(Touch ID)。使得我们可以更快...
    mrChan1234阅读 1,303评论 0 0
  • 简述: 在类似支付宝为首的应用以及各种理财等涉及钱财对安全性要求较高的应用中,目前普遍对关键数据都做了安全访问限制...
    C_HPY阅读 3,023评论 0 18
  • Touch ID Touch ID是iPhone5S后加入的一项新的功能,也就是大家熟知的指纹识别技术。大家用得最...
    cym_bj阅读 585评论 0 3
  • 前段时间公司开发需要指纹\人脸识别功能,指纹识别和面部识别公用一个库即可,系统会自动判断当前设备支持指纹识别...
    开心的小娇阅读 4,716评论 0 4
  • 1 开发步骤 1.1 效果图 本功能实现起来是很简单的,因为苹果都已经帮我们封装好了,只需要实现几个方法就可以了。...
    Kevin_Junbaozi阅读 151评论 0 0