从iPhone5s开始,苹果手机和ipad等设备开始支持指纹识别传感器,在某些场合可以使用到,以简化操作。
1、首先要导入头文件:
import <LocalAuthentication/LocalAuthentication.h>
2、系统的版本不能小于8.0:
// 检测设备的版本
if ([UIDevice currentDevice].systemVersion.floatValue < 8.0) {
// 一般跳转到手动支付界面
return;
}
3、创建本地授权上下文对象:
LAContext *ctx = [[LAContext alloc] init];
4、检查硬件:
// 检测指纹识别传感器是否正常(是否存在)
if (![ctx canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:NULL]) {
// 一般跳转到手动支付界面
return;
}
5、检测用户指纹操作(指纹输入或者点击取消):
// 执行指纹操作(注意整个是在异步操作的)
[ctx evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:@“这里是描述” reply:^(BOOL success, NSError *error) {
if (success) {
// 执行授权后的操作
} else {
// 用户点击了手动输入的按钮
if (error.code == LAErrorUserFallback) {
// 跳转到手动授权界面
}
}
}];
注:
1、指纹识别的整个操作是在异步执行的,如果需要更新UI,需要在主线程进行回调。
2、指纹识别是一个独立的操作,有自己的消息框以配合指纹传感器的使用,此外,还必须存在手动输入的模块,因为指纹识别不稳定,不能作为用户的唯一输入。