ios开发-指纹识别

最近我们使用支付宝类似软件的时候,发现可以使用指纹了,看起来是否的高大上。当时苹果推出了相关接口,让程序写起来很简单哈。

在iPhone5s的时候,苹果推出了指纹解锁。但是在ios8.0的时候苹果才推出相关的接口

所有我们需要判断硬件设备和ios系统版本是否支持

下面的例子是,先提示指纹识别,如果不支持或者主动取消,则需要手动输入密码认证

所以我们第一步需要判定系统版本,如果不支持,我们直接返回,即可

1 if ([UIDevice currentDevice].systemVersion.floatValue < 8.0) {
2         [self inputUserInfo];
3         return;
4     }

 

第二步,判断手机是否支持指纹识别,我们要使用到一个LAContext类

复制代码
1      //创建LAContext
2     LAContext *ctx = [[LAContext alloc] init];
3      // 判断设备是否支持指纹识别
4     if ([ctx canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:NULL]) {
5      
6         //识别代码部分
7 }
复制代码

 

第三步,在第二步的“识别代码部分”填写正经的识别代码

复制代码
 1    //创建LAContext
 2     LAContext *ctx = [[LAContext alloc] init];
 3      // 判断设备是否支持指纹识别
 4     if ([ctx canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:NULL]) {
 5      
 6         NSLog(@"请按手指");
 7         
 8         // 输入指纹 - 回调是异步的
 9         [ctx evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:@"提示文字" reply:^(BOOL success, NSError *error) {
10             
11             
12             // 1. 如果输入成功
13             if (success) {
14                 //成功
15             } else {
16                 // 判断错误类型是否是主动自行输入密码
17                 if (error.code == LAErrorUserFallback) {
18                     dispatch_async(dispatch_get_main_queue(), ^{
19                         //密码验证方法
20                     });
21                 }
22             }
23         }];
24     } else {
25         
26         //密码验证方法
27     }
posted @ 2015-05-28 17:01  许文斌  阅读(440)  评论(0编辑  收藏  举报