指纹识别

要求 :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 {
  //  当前设备不支持指纹识别
}

你可能感兴趣的:(指纹识别)