美文网首页
iOS Touch ID 使用详情

iOS Touch ID 使用详情

作者: 93a13ee543af | 来源:发表于2016-02-23 15:38 被阅读434次

简单介绍

支持系统和机型

iOS系统的指纹识别功能最低支持的机型为iPhone 5s,最低支持系统为iOS 8,虽然安装iOS 7系统的5s机型可以使用系统提供的指纹解锁功能,但由于API并未开放,所以理论上第三方软件不可使用。

依赖框架
LocalAuthentication.framework
import <LocalAuthentication/LocalAuthentication.h>

注意事项
做iOS 8以下版本适配时,务必进行API验证,避免调用相关API引起崩溃。

使用类
LAContext指纹验证操作对象

代码实现


//初始化上下文对象

    LAContext* context = [[LAContext alloc] init];    //错误对象
    NSError  * error = nil;
    NSString * result = @"验证";
    context.localizedFallbackTitle = @"123";   

    //判断设备是否支持touchID
    BOOL isSupport = [context canEvaluatePolicy:
    LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&error];
    if (isSupport) {
        //指纹识别函数
        [context evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics 
        localizedReason:@"用 Touch ID 登录" 
        reply:^(BOOL success, NSError *error) {
            
            
          //如果成功
            if (success) {
                NSLog(@"验证成功");
            }else{
                switch (error.code) {
                    case LAErrorSystemCancel:
                    {
                        NSLog(@"Authentication was cancelled by the system");
                        //切换到其他APP,系统取消验证Touch ID
                        break;
                    }
                    case LAErrorUserCancel:
                    {
                        NSLog(@"Authentication was cancelled by the user");
                        //用户取消验证Touch ID
                        break;
                    }
                    case LAErrorUserFallback:
                    {
                        NSLog(@"User selected to enter custom password");
                        [[NSOperationQueue mainQueue] addOperationWithBlock:^{
                            //用户选择输入密码,切换主线程处理
                        }];
                        break;
                    }
                }
            }
        }];

} else {
  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);
}
    

下面是LAError中每个枚举对应的含义

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,
  
}

相关文章

  • iOS Touch ID 使用详情

    简单介绍 支持系统和机型 iOS系统的指纹识别功能最低支持的机型为iPhone 5s,最低支持系统为iOS 8,虽...

  • iOS Touch ID使用教程

    支持系统和机型 iOS系统的指纹识别功能最低支持的机型为iPhone 5s,最低支持系统为iOS 8,虽然安装iO...

  • Touch ID

    使用iOS 8 SDK添加Touch ID指纹识别功能 - Puzhi的专栏 - 博客频道 - CS...

  • iOS Touch ID

    iOS 8 SDK向开发者公开了Touch ID指纹识别功能,允许App对用户身份进行本地验证。使用Touch I...

  • app高大上的指纹识别登陆

    iOS 8 SDK向开发者公开了Touch ID指纹识别功能,允许App对用户身份进行本地验证。使用Touch I...

  • iOS Touch ID

    附:我的博客地址

  • iOS Touch ID

    iOS Touch ID 支持系统和机型 iOS系统的指纹识别功能最低支持的机型为iPhone 5s,最低支持系统...

  • iOS Touch ID

    iOS指纹解锁这个需求在一些软件上可能会有需要,比如支付宝的指纹解锁之类的。前几天有个?友问这个,正好看了一下。很...

  • Touch ID 使用

    简单记录一下如何在自己的 APP 中调用系统 Touch ID 注意: 代码:

  • Touch ID 使用

    介绍 Touch ID是iPhone5S后加入的一项新的功能,也就是大家熟知的指纹识别技术。iOS8后苹果开放了T...

网友评论

      本文标题:iOS Touch ID 使用详情

      本文链接:https://www.haomeiwen.com/subject/dhgbkttx.html