温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

iOS 指纹解锁验证TouchID功能

发布时间:2020-09-05 11:42:11 来源:脚本之家 阅读:115 作者:鸿鹄当高远 栏目:移动开发

1、首先,引入依赖框架 LocalAuthentication.framework

#import <LocalAuthentication/LocalAuthentication.h>

2、然后,判断系统是否为iOS8及以上

//iOS8.0后才支持指纹识别接口
  if ([UIDevice currentDevice].systemVersion.floatValue < 8.0) {
    return;
  }

3、最后,在APP启动时调用以下方法即可完成指纹解锁的全部功能集成

- (void)evaluateAuthenticate
{
  //创建LAContext
  LAContext* context = [[LAContext alloc] init];
  NSError* error = nil;
  NSString* result = @"请验证已有指纹";
  //首先使用canEvaluatePolicy 判断设备支持状态
  if ([context canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&error]) {
    //支持指纹验证
    [context evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:result reply:^(BOOL success, NSError *error) {
      if (success) {
        //验证成功,主线程处理UI
      }
      else
      {
        NSLog(@"%@",error.localizedDescription);
        switch (error.code) {
          case LAErrorSystemCancel:
          {
            //系统取消授权,如其他APP切入
            break;
          }
          case LAErrorUserCancel:
          {
            //用户取消验证Touch ID
            break;
          }
          case LAErrorAuthenticationFailed:
          {
            //授权失败
            break;
          }
          case LAErrorPasscodeNotSet:
          {
            //系统未设置密码
            break;
          }
          case LAErrorTouchIDNotAvailable:
          {
            //设备Touch ID不可用,例如未打开
            break;
          }
          case LAErrorTouchIDNotEnrolled:
          {
            //设备Touch ID不可用,用户未录入
            break;
          }
          case LAErrorUserFallback:
          {
            [[NSOperationQueue mainQueue] addOperationWithBlock:^{
              //用户选择输入密码,切换主线程处理
            }];
            break;
          }
          default:
          {
            [[NSOperationQueue mainQueue] addOperationWithBlock:^{
              //其他情况,切换主线程处理
            }];
            break;
          }
        }
      }
    }];
  }
  else
  {
    //不支持指纹识别,LOG出错误详情
    NSLog(@"不支持指纹识别");
    switch (error.code) {
      case LAErrorTouchIDNotEnrolled:
      {
        NSLog(@"TouchID is not enrolled");
        break;
      }
      case LAErrorPasscodeNotSet:
      {
        NSLog(@"A passcode has not been set");
        break;
      }
      default:
      {
        NSLog(@"TouchID not available");
        break;
      }
    }
    NSLog(@"%@",error.localizedDescription);
  }
}

以上所述是小编给大家介绍的iOS 指纹解锁验证TouchID功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对亿速云网站的支持!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI