美文网首页
iOS Touch ID使用教程

iOS Touch ID使用教程

作者: MMD_ | 来源:发表于2017-11-18 17:47 被阅读38次
    支持系统和机型

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

    依赖框架

    在使用前我们需要导入 LocalAuthentication.framework 这个库
    然后引入头文件

    #import <LocalAuthentication/LocalAuthentication.h>
    

    这个库必须要Xcode6并且连接的是真机,才不会提示找不到的错误。 如果是模拟器会提示找不到这个库。

    OC代码
    //验证是否支持TouchID
    - (void)judgeCanTouchId
    {
        LAContext *context = [LAContext new];
        
        NSError *error;
        context.localizedFallbackTitle = @"输入密码";
        
        if ([context canEvaluatePolicy:(LAPolicyDeviceOwnerAuthenticationWithBiometrics) error:&error])
        {
            NSLog(@"支持使用");
            [context evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:NSLocalizedString(@"通过验证指纹解锁",nil) reply:^(BOOL success, NSError * _Nullable error) {
                if (success) {
                    NSLog(@"验证成功");
                }
                else
                {
                    /*
                     // 用户未提供有效证书,(3次机会失败 --身份验证失败)。
                     LAErrorAuthenticationFailed = kLAErrorAuthenticationFailed,
                     
                     // 认证被取消,(用户点击取消按钮)。
                     LAErrorUserCancel           = kLAErrorUserCancel,
                     
                     // 认证被取消,用户点击回退按钮(输入密码)。
                     LAErrorUserFallback         = kLAErrorUserFallback,
                     
                     // 身份验证被系统取消,(比如另一个应用程序去前台,切换到其他 APP)。
                     LAErrorSystemCancel         = kLAErrorSystemCancel,
                     
                     // 身份验证无法启动,因为密码在设备上没有设置。
                     LAErrorPasscodeNotSet       = kLAErrorPasscodeNotSet,
                     
                     // 身份验证无法启动,因为触摸ID在设备上不可用。
                     LAErrorTouchIDNotAvailable  = kLAErrorTouchIDNotAvailable,
                     
                     // 身份验证无法启动,因为没有登记的手指触摸ID。 没有设置指纹密码时。
                     LAErrorTouchIDNotEnrolled   = kLAErrorTouchIDNotEnrolled,
                     **/
                    
                    if (error.code == kLAErrorUserFallback) {
                        NSLog(@"用户选择了另一种方式");
                    }
                    else if (error.code == kLAErrorUserCancel)
                    {
                        NSLog(@"用户取消");
                    }
                    else if (error.code == kLAErrorSystemCancel)
                    {
                        NSLog(@"切换前台被取消");
                    }
                    else if (error.code == kLAErrorPasscodeNotSet)
                    {
                        NSLog(@"身份验证没有设置");
                    }
                    else
                    {
                        NSLog(@"验证失败");
                    }
                }
            }];
        }
        else
        {
            NSLog(@"不支持使用");
        }
    }
    
    IMG_0858.PNG
    总结

    Touch ID验证中我们并不能拿到标识,只有一个YES or NO的结果

    相关文章

      网友评论

          本文标题:iOS Touch ID使用教程

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