首页 > 学院 > 开发设计 > 正文

iOSTouchID使用

2019-11-14 18:40:03
字体:
来源:转载
供稿:网友

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

 


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表