}
-
(void)authentication{
LAContext * zrContext = [[LAContext alloc] init];
NSError * authError = nil;
//授权原因
NSString * zrReason = @"我需要授权";
//if条件判断设备是否支持Touch
//ID 是否开启Touch id等这个一定要写上(曾经3D
//Touch使用的时候没判断导致iOS9以后的系统启动app就崩溃)if ([zrContext canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&authError]) {
[zrContext evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:zrReason reply:^(BOOL success, NSError * _Nullable error) { if (success) { }else{ switch (error.code) { case LAErrorAuthenticationFailed: NSLog(@"用户提供的指纹不对"); break; case LAErrorUserCancel: NSLog(@"用户点击了取消按钮"); break; case LAErrorUserFallback: NSLog(@"用户选择输入密码"); break; case LAErrorSystemCancel: NSLog(@"切换到其他的app(按了Home按键),被系统取消"); break; case LAErrorTouchIDLockout: NSLog(@"用户指纹错误多次,TOuch ID 被锁定"); break; //9.0我试了验证过程中电话进来返回的LAErrorSystemCancel错误码不是这个 case LAErrorAppCancel: NSLog(@"被(突如其来的)应用(电话)取消"); break; default: break; } } }];
}else{
switch (authError.code) { //9.0 试过了不设置密码返回的是 LAErrorTouchIDNotEnrolled 错误码 case LAErrorPasscodeNotSet: NSLog(@"在设置里面没有设置密码"); break; case LAErrorTouchIDNotAvailable: NSLog(@"设备不支持Touch ID"); break; case LAErrorTouchIDNotEnrolled: NSLog(@"在设置里面没有设置Touch Id 指纹"); break; case LAErrorInvalidContext: NSLog(@"创建的指纹对象失效"); break; default: break; }
}
}