项目需要用到指纹识别,我把关键部分拿出来,代码如下:
- 引入头文件
#import <LocalAuthentication/LocalAuthentication.h>
- 指纹识别代码
-(void)test
{
LAContext *context = [[LAContext alloc] init];
NSError *error = nil;
NSString *reason = @"我们需要验证您的指纹来确认您的身份";
// 判断设置是否支持指纹识别
if([context canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&error])
{
// 指纹识别只判断当前用户是否是机主
[context evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:reason reply:^(BOOL success, NSError * _Nullable error) {
if(success)
{
NSLog(@"指纹认证成功");
}
else
{
NSLog(@"指纹认证失败");
NSLog(@"错误码:%zd",error.code);
NSLog(@"出错信息:%@",error);
// 错误码 error.code
// -1: 连续三次指纹识别错误
// -2: 在TouchID对话框中点击了取消按钮
// -3: 在TouchID对话框中点击了输入密码按钮
// -4: TouchID对话框被系统取消,例如按下Home或者电源键
// -8: 连续五次指纹识别错误,TouchID功能被锁定,下一次需要输入系统密码
}
}];
}
else
{
NSLog(@"TouchID设备不可用");
NSLog(@"错误码:%zd",error.code);
NSLog(@"出错信息:%@",error);
}
}
调用test方法,就可以看到app要求识别指纹的界面
如果识别失败就会要求重新试一次
惯例把Demo上传gitHub。