- // 导入库
#import <LocalAuthentication/LocalAuthentication.h> - // 指纹识别 创建对象
@property (nonatomic, strong) LAContext *context; - // 处理错误
NSError *error;
// 判断硬件是否支持
BOOL res = [self.context canEvaluatePolicy:LAPolicyDeviceOwnerAuthentication error:&error];
// 处理错误
if (res == NO || error)
{
NSLog(@"设备不支持指纹识别");
} - // 验证指纹
[self.context evaluatePolicy:LAPolicyDeviceOwnerAuthentication localizedReason:@"请---打开" reply:^(BOOL success, NSError * _Nullable error) {
switch (error.code) {
case LAErrorAuthenticationFailed:
NSLog(@"验证失败, 用户没有提供正确的指纹");
break;
case LAErrorUserCancel:
NSLog(@"用户点击了取消按钮");
break;
case LAErrorUserFallback:
NSLog(@"用户点击了`输入密码`按钮");
break;
case LAErrorSystemCancel:
NSLog(@"由系统取消, 比如有其它应用进入前台");
break;
case LAErrorPasscodeNotSet:
NSLog(@"系统没有设置密码, 所以不能使用指纹");
break;
case LAErrorTouchIDNotAvailable:
NSLog(@"不支持TouchID的硬件");
break;
case LAErrorTouchIDNotEnrolled:
NSLog(@"用户没有录入指纹, 有touchID的硬件支持");
break;
case LAErrorTouchIDLockout:
NSLog(@"TouchID被上锁, 失败太多");
break;
case LAErrorAppCancel:
NSLog(@"调用了invalidate方法取消指纹验证");
break;
case LAErrorInvalidContext:
NSLog(@"上下文环境无效");
break;
default:
break;
}
if (success)
{
NSLog(@"验证成功");
}
}];