华山论剑之浅谈iOS的Touch ID验证


序言


在iOS 8系统开发的时候,苹果官方就开始开放了Touch ID的验证接口功能,这样开发人员就可以在应用程序中判断输入的Touch ID 是否是持有者的Touch ID.当然了,只能验证成功与否,却不能得到具体的信息.


准备工作


  1. 首先我们需要在系统设置的"Touch ID 与密码"这个选项中保存我们的指纹信息.

2.在Xcode中,我们需要导入对应的库.库名和示意图如下.

LocalAuthentication.framework
添加位置


Touch ID验证实现


  1. 如下,LocalAuthentication.framework中提供了两个方法,我们看一下,这个方法分别的作用.
 //这个方法是用来判断是否能够验证Touch ID

canEvaluatePolicy: error: 
//这个方法是用来验证Touch ID,localizedReason后面跟的是验证过程中提示用户的字符串,reply后面自带着Bolck,我们可以对验证完成之后做出相应的操作.

evaluatePolicy: localizedReason: reply:  
        
  1. 整个代码部分我是写在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
验证失败,重新验证
当然了,最后还是要附上Touch ID验证的Demo.以备不时之需,希望这篇文章能对您有所帮助.如果有问题,可以在下面的评论区提出,我会及时回复您的,谢谢.
--> Touch ID验证Demo 💾
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,466评论 25 708
  • 1.以《三言两拍》中“二拍”的第一篇为标尺,确定出自己的阅读层次,并据此制定一个阅读套餐。(文言几成+旧小说几成+...
    兰奢待阅读 337评论 1 0
  • 作为一个快四十的大叔,忽然想起去学钢琴,是不是很无聊。 答案是:是的,就是很无聊才去学琴的。 没有妻子,没有孩子,...
    简生活家阅读 630评论 0 2
  • task容器任务栈 当用户点击某个应用程序图标打开一个应用时,那么这个任务就处于前端。如果这个应用程序之前未被打开...
    夏大王2019阅读 334评论 0 0
  • 2017年第一张: 2017年第二张: 去年的这个时候,不知什么原因,一股强烈的画画欲望在体内燃起。没有任何基础的...
    白衡阅读 236评论 4 5