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

 

posted @ 2015-07-19 18:33  wb145230  阅读(949)  评论(0编辑  收藏  举报