您的位置:首页 > 移动开发 > IOS开发

iOS Touch ID使用

2015-07-19 18:33 585 查看
1.首先导入头文件

#import <LocalAuthentication/LocalAuthentication.h>


2.关键代码

- (void)validateTouchID {
LAContext *context = [[LAContext alloc] init];
NSError *error;
NSString *tip = @"通过Home键验证已有手机指纹";
//  判断手机是否有指纹
if ([context canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&error]) {
[context evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:tip reply:^(BOOL success, NSError *error) {
if (success) {
//  验证成功
NSLog(@"success");
} else {
NSLog(@"%@",error.description);
switch (error.code) {
case LAErrorSystemCancel:
NSLog(@"系统取消授权");
break;
case LAErrorUserCancel:
NSLog(@"用户取消");
break;
case LAErrorUserFallback:
NSLog(@"用户输入密码");
break;
default:
break;
}
}
}];
} else {
NSLog(@"不支持指纹识别,%@",error.description);
}
}


3.LAError枚举相关解释

typedef NS_ENUM(NSInteger, LAError) {
/// 认证不成功,因为用户没有提供有效的凭据
LAErrorAuthenticationFailed = kLAErrorAuthenticationFailed,

/// 被用户取消验证(例如:“取消”按钮)。
LAErrorUserCancel           = kLAErrorUserCancel,

/// 认证被取消了,因为用户点击回退按钮(输入密码)。
LAErrorUserFallback         = kLAErrorUserFallback,

/// 通过系统(例如另一个应用程序的应用程序)被取消验证。
LAErrorSystemCancel         = kLAErrorSystemCancel,

/// 认证无法启动,因为密码没有设置在设备。
LAErrorPasscodeNotSet       = kLAErrorPasscodeNotSet,

/// 无法启动验证,因为在设备上不提供触摸标识。
LAErrorTouchIDNotAvailable  = kLAErrorTouchIDNotAvailable,

/// 无法启动验证,因为触摸标识没有注册手指。
LAErrorTouchIDNotEnrolled   = kLAErrorTouchIDNotEnrolled,
} NS_ENUM_AVAILABLE(10_10, 8_0);


4.效果图



如果你不是在wb145230博客园看到本文,请点击查看原文.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: