类似于支付宝的指纹支付一样,在项目中添加指纹验证
首先应该引入系统库: LocalAuthentication.framework
在调用的页面引入头信息:#import "LocalAuthentication/LAContext.h"
LAContext *myContext = [[LAContext alloc] init];
NSError *authError = nil;
NSString *myLocalizedReasonString = @"我们需要验证您的指纹来确认你的身份";
// 判断设备是否支持指纹识别
if ([myContext canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&authError]) {
// 指纹识别只判断当前用户是否机主
[myContext evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics
localizedReason:myLocalizedReasonString
reply:^(BOOL success, NSError *error) {
if (success) {
// User authenticated successfully, take appropriate action
NSLog(@"指纹认证成功");
returnCode = @"1";
} else {
// User did not authenticate successfully, look at error and take appropriate action
NSLog(@"指纹认证失败,%@",error.description);
// 错误码 error.code
// -1: 连续三次指纹识别错误
// -2: 在TouchID对话框中点击了取消按钮
// -3: 在TouchID对话框中点击了输入密码按钮
// -4: TouchID对话框被系统取消,例如按下Home或者电源键
// -8: 连续五次指纹识别错误,TouchID功能被锁定,下一次需要输入系统密码
returnCode = [@(error.code) stringValue];
}
}];
} else {
// Could not evaluate policy; look at authError and present an appropriate message to user
NSLog(@"TouchID设备不可用");
// TouchID没有设置指纹
// 关闭密码(系统如果没有设置密码TouchID无法启用)
}
上面就是获取指纹验证的方法,可以在成功和失败的方法里面添加相应的逻辑。