ios开发-指纹识别

时间:2023-03-08 16:50:12

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

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

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

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

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

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

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

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

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

    //创建LAContext
LAContext *ctx = [[LAContext alloc] init];
// 判断设备是否支持指纹识别
if ([ctx canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:NULL]) { NSLog(@"请按手指"); // 输入指纹 - 回调是异步的
[ctx evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:@"提示文字" reply:^(BOOL success, NSError *error) { // 1. 如果输入成功
if (success) {
//成功
} else {
// 判断错误类型是否是主动自行输入密码
if (error.code == LAErrorUserFallback) {
dispatch_async(dispatch_get_main_queue(), ^{
//密码验证方法
});
}
}
}];
} else { //密码验证方法
}