Touch ID简单介绍
iOS系统的指纹识别功能最低支持的机型为iPhone 5s,最低支持系统为 iOS 8,虽然安装iOS 7系统的5s机型可以使用系统提供的指纹解锁功能,但由于API并未开放,所以理论上第三方软件不可使用。
Touch ID的使用
- 依赖框架
LocalAuthentication.framework
- 使用类
LAContext
指纹验证操作对象
操作流程
导入#import <LocalAuthentication/LocalAuthentication.h>
- 代码实现
- (IBAction)openTouchID:(id)sender {
LAContext *context = [[LAContext alloc] init]
NSError *conError = nil;
//判断系统版本
if ([UIDevice currentDevice].systemVersion.doubleValue >= 8.0)
{
// iOS9后使用TouchID时候,最好选择LAPolicyDeviceOwnerAuthentication枚举:它在指纹验证失败后,可以继续手动输入密码来设置,
iOS8时使用的是LAPolicyDeviceOwnerAuthenticationWithBiometrics
if ([context canEvaluatePolicy:LAPolicyDeviceOwnerAuthentication error:&conError]) {
[context evaluatePolicy:LAPolicyDeviceOwnerAuthentication
localizedReason:@"使用指纹验证"
reply:^(BOOL success, NSError * _Nullable error) {
if (success) {
NSLog(@"success");
// 继续执行相应的逻辑
}else
{
error.code;
NSLog(@"error = %@", error.localizedDescription);
}
}];
}else
{
//不支持指纹识别
error.code;
NSLog(@"conError= %@", conError.localizedDescription);
}
/*
error.code错误处理的枚举
typedef NS_ENUM(NSInteger, LAError)
{
//授权失败
LAErrorAuthenticationFailed = kLAErrorAuthenticationFailed,
//用户取消Touch ID授权
LAErrorUserCancel = kLAErrorUserCancel,
//用户选择输入密码
LAErrorUserFallback = kLAErrorUserFallback,
//系统取消授权(例如其他APP切入)
LAErrorSystemCancel = kLAErrorSystemCancel,
//系统未设置密码
LAErrorPasscodeNotSet = kLAErrorPasscodeNotSet,
//设备Touch ID不可用,例如未打开
LAErrorTouchIDNotAvailable = kLAErrorTouchIDNotAvailable,
//设备Touch ID不可用,用户未录入
LAErrorTouchIDNotEnrolled = kLAErrorTouchIDNotEnrolled,
} NS_ENUM_AVAILABLE(10_10, 8_0);
*/
}
}
网友评论