1.首先导入头文件
#import<LocalAuthentication/LocalAuthentication.h>
2.关键代码
- (void)validateTouchID {
LAContext*context =[[LAContext alloc] init];
NSError*error;
NSString*tip=@"通过Home键验证已有手机指纹";//判断手机是否有指纹if([context canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&error]) {
[context evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:tip reply:^(BOOL success, NSError *error) {if(success) {//验证成功NSLog(@"success");
}else{
NSLog(@"%@",error.description);switch(error.code) {caseLAErrorSystemCancel:
NSLog(@"系统取消授权");
break;caseLAErrorUserCancel:
NSLog(@"用户取消");
break;caseLAErrorUserFallback:
NSLog(@"用户输入密码");
break;default:
break;
}
}
}];
}else{
NSLog(@"不支持指纹识别,%@",error.description);
}
}
3.LAError枚举相关解释
typedef NS_ENUM(NSInteger, LAError) {///认证不成功,因为用户没有提供有效的凭据LAErrorAuthenticationFailed =kLAErrorAuthenticationFailed,///被用户取消验证(例如:“取消”按钮)。LAErrorUserCancel =kLAErrorUserCancel,///认证被取消了,因为用户点击回退按钮(输入密码)。LAErrorUserFallback =kLAErrorUserFallback,///通过系统(例如另一个应用程序的应用程序)被取消验证。LAErrorSystemCancel =kLAErrorSystemCancel,///认证无法启动,因为密码没有设置在设备。LAErrorPasscodeNotSet =kLAErrorPasscodeNotSet,///无法启动验证,因为在设备上不提供触摸标识。LAErrorTouchIDNotAvailable =kLAErrorTouchIDNotAvailable,///无法启动验证,因为触摸标识没有注册手指。LAErrorTouchIDNotEnrolled =kLAErrorTouchIDNotEnrolled,
} NS_ENUM_AVAILABLE(10_10, 8_0);
4.效果图
如果你不是在wb145230博客园看到本文,请点击查看原文.