指纹识别

要求 :iOS 系统必须是8.0以上,mac系统必须是10.10以上,在5S之上的设备才支持指纹识别功能。

iOS 8 SDK向开发者公开了Touch ID指纹识别功能,允许App对用户身份进行本地验证。使用Touch ID非常简单;

1.需要引入LocalAuthentication框架

2.使用代码

LAContext *context = [[LAContext alloc]init];
context.localizedFallbackTitle = fallbackTitle;
NSError *error = nil;
NSAssert(self.delegate != nil, WJNotice(@"WJTouchIDDelegate 不能为空", @"WJTouchIDDelegate must be non-nil"));
//判断设备是否支持指纹识别
if ([context canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&error]) {
    
    // 输入指纹,异步
    // 提示:指纹识别只是判断当前用户是否是手机的主人!程序原本的逻辑不会受到任何的干扰!
    [context evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:message == nil ? WJNotice(@"默认提示信息", @"The Default Message") : message reply:^(BOOL success, NSError * _Nullable error) { 
        
        if (success) {
            
              //指纹识别成功之后的处理
            }
        } else if (error) {
            
            switch (error.code) {
                    
                case LAErrorAuthenticationFailed: {
                       //用户验证失败
                           }
                    break;
                    
                case LAErrorUserCancel: {
                    //用户取消
            
                }
                    break;
                    
                case LAErrorUserFallback: {
                    
                    //在TouchID对话框中点击输入密码按钮
                }
                    break;
                    
                case LAErrorSystemCancel:{
                   //在验证的TouchID的过程中被系统取消 例如突然来电话、按了Home键、锁屏...
                    }
                }
                    break;
                    
                case LAErrorTouchIDNotEnrolled: {
              //设备没有录入TouchID,无法启用TouchID
                }
                    break;
                    
                case LAErrorPasscodeNotSet: {
                    //无法启用TouchID,设备没有设置密码
           
                }
                    break;
                    
                case LAErrorTouchIDNotAvailable: {
                    
                    //该设备的TouchID无效
                }
                    break;
                    
                case LAErrorTouchIDLockout: {
                    
               //多次连续使用Touch ID失败,Touch ID被锁,需要用户输入密码解锁
                }
                    break;
                    
                case LAErrorAppCancel:  {
                    
             //当前软件被挂起取消了授权(如突然来了电话,应用进入前台)
                }
                    break;
                    
                case LAErrorInvalidContext: {
             //当前软件被挂起取消了授权 (授权过程中,LAContext对象被释)
                }
                    break;
            }
        }
    }];
    
} else {
  //  当前设备不支持指纹识别
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 简述: 在类似支付宝为首的应用以及各种理财等涉及钱财对安全性要求较高的应用中,目前普遍对关键数据都做了安全访问限制...
    C_HPY阅读 3,073评论 0 18
  • 由于自己的产品接下来可能要支持touch id,所以有必要对ios的指纹识别做一下预研。去年九月份,随着 iPho...
    JonnyHoang阅读 1,277评论 0 6
  • 指纹识别功能是iphone 5S之后推出的.SDK是iOS 8.0推出! 推出指纹识别功能的目的,是为了简化移动支...
    楚简约阅读 4,383评论 2 3
  • 舒曼是一颗种子 不小心种在我心里了,不小心生根了,发芽了.... 不知不觉的,你好像已经在我心里变成了一颗每天滋长...
    舒科舒科舒科阅读 199评论 1 1