/**
指纹识别
@par suc 成功回调
@par err 失败回调
-错误码
-1: 连续三次指纹识别错误
-2: 在TouchID对话框中点击了取消按钮
-3: 在TouchID对话框中点击了输入密码按钮
-4: TouchID对话框被系统取消,例如按下Home或者电源键
-8: 连续五次指纹识别错误,TouchID功能被锁定,下一次需要输入系统密码
*/
+ (void)FingerprintRecognition:(void(^)(NSString*data))sucfailure:(void(^)(NSIntegercode))err{
LAContext *context = [[LAContext alloc] init];
NSError*authError =nil;
NSString*LocalString =@"我们需要验证您的指纹以确认您的身份";
// 判断设备是否支持指纹识别
if ([context canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&authError]) {
// 指纹识别只判断当前用户是否机主
[contextevaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:LocalString reply:^(BOOL success, NSError *error) {
if(success) {
NSLog(@"指纹认证成功");
runMain(^{
suc(@"指纹认证成功");
});
}else{
// 用户未成功通过身份验证,请查看错误并采取适当的措施
NSLog(@"指纹认证失败,%@",error.description);
// 错误码 error.code
// -1: 连续三次指纹识别错误
// -2: 在TouchID对话框中点击了取消按钮
// -3: 在TouchID对话框中点击了输入密码按钮
// -4: TouchID对话框被系统取消,例如按下Home或者电源键
// -8: 连续五次指纹识别错误,TouchID功能被锁定,下一次需要输入系统密码
NSLog(@"----%ld",(long)error.code);
runMain(^{
err(error.code);
});
}
}];
}else{
// 无法评估政策; 查看authError并向用户显示适当的消息
NSLog(@"TouchID设备不可用");
// TouchID没有设置指纹
// 关闭密码(系统如果没有设置密码TouchID无法启用)
runMain(^{
[LoadingView showError:@"TouchID无法启用"];
});
}
}
网友评论