简介
iOS8.0之后Touch ID的API开发给开发,最低支持的机型为iPhone 5s,最低支持系统为ios 8,虽然安装iOS 7系统的5s机型可以使用系统提供的指纹解锁功能,但由于API并未开放,所以理论上第三方软件不可使用。
依赖库
#import <LocalAuthentication/LocalAuthentication.h>
实现过程
使用类
LAContext 指纹验证操作对象判断设备是否支持TouchID的
- (BOOL)canEvaluatePolicy:(LAPolicy)policy error:(NSError * __autoreleasing *)error __attribute__((swift_error(none)));
- 调用TouchID验证
- (void)evaluatePolicy:(LAPolicy)policy
localizedReason:(NSString *)localizedReason
reply:(void(^)(BOOL success, NSError * __nullable error))reply;
- 属性设置
localizedFallbackTitle:用于设置左边的按钮的名称,默认是Enter Password.
localizedReason:用于设置提示语,表示为什么要使用Touch ID
代码
//初始化上下文对象
LAContext* context = [[LAContext alloc] init];
//错误对象
NSError* error = nil;
//首先使用canEvaluatePolicy 判断设备支持状态
if ([context canEvaluatePolicy: LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&error])
{
//支持指纹验证
[context evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics
localizedReason:@"我要解锁"
reply:^(BOOL succes, NSError *error) {
if (succes) {
//验证成功,返回主线程处理
NSLog(@"验证成功");
dispatch_async(dispatch_get_main_queue(), ^{
backSucces(succes);
});
} else {
NSLog(@"验证失败");
NSLog(@"%@",error.localizedDescription);
}
}];
}else
{
NSLog(@"不支持指纹识别,LOG出错误详情");
NSLog(@"%@",error.localizedDescription);
}