序言
在iOS 8系统开发的时候,苹果官方就开始开放了Touch ID的验证接口功能,这样开发人员就可以在应用程序中判断输入的Touch ID 是否是持有者的Touch ID.当然了,只能验证成功与否,却不能得到具体的信息.
准备工作
- 首先我们需要在系统设置的"Touch ID 与密码"这个选项中保存我们的指纹信息.
2.在Xcode中,我们需要导入对应的库.库名和示意图如下.
LocalAuthentication.framework
Touch ID验证实现
- 如下,LocalAuthentication.framework中提供了两个方法,我们看一下,这个方法分别的作用.
//这个方法是用来判断是否能够验证Touch ID
canEvaluatePolicy: error:
//这个方法是用来验证Touch ID,localizedReason后面跟的是验证过程中提示用户的字符串,reply后面自带着Bolck,我们可以对验证完成之后做出相应的操作.
evaluatePolicy: localizedReason: reply:
- 整个代码部分我是写在ViewController里面,用一个Button来调用Touch ID的验证事件,当然,首先我们需要导入LocalAuthentication框架.
#import <LocalAuthentication/LocalAuthentication.h>
验证事件实现部分如下
//验证事件
- (IBAction)touchAction:(id)sender {
LAContext *context = [[LAContext alloc]init];
NSError *error = nil;
if ([context canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&error]) {
[context evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:@"请验证您的Touch ID" reply:^(BOOL success, NSError * _Nullable error) {
if (success) {
tipWithMessage(@"验证成功!");
}else{
tipWithMessage(@"验证失败!");
}
}];
}else{
NSLog(@"%@",error);
}
}
#pragma mark ---- 自定义宏弹窗 -----
NS_INLINE void tipWithMessage(NSString *message){
dispatch_async(dispatch_get_main_queue(), ^{
UIAlertView *alerView = [[UIAlertView alloc] initWithTitle:@"提示" message:message delegate:nil cancelButtonTitle:nil otherButtonTitles:nil, nil];
[alerView show];
[alerView performSelector:@selector(dismissWithClickedButtonIndex:animated:) withObject:@[@0, @1] afterDelay:0.9];
});
}
我们看一下真机测试效果如何(模拟器根本就不行😂)....
当然了,最后还是要附上Touch ID验证的Demo.以备不时之需,希望这篇文章能对您有所帮助.如果有问题,可以在下面的评论区提出,我会及时回复您的,谢谢.