你的位置:首页 > 操作系统

[操作系统]iOS Touch ID使用


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博客园看到本文,请点击查看原文.