应用TouchID解锁

作者: 翱翔的魁魁 | 来源:发表于2016-09-01 15:55 被阅读110次
第一步

导入对应的头文件

#import <LocalAuthentication/LocalAuthentication.h>
第二步

创建LAContext对象

LAContext *context = [LAContext new];
 context.localizedFallbckTitle = @"右侧按钮标题";

localizedFallbckTitle 设置指纹解锁失败时,提示框的右侧按钮提示语

第三步

判断是否支持指纹解锁

- (BOOL)canEvaluatePolicy:(LAPolicy)policy error:(NSError * __autoreleasing *)error __attribute__((swift_error(none)));

支持指纹解锁,调用下述方法

- (void)evaluatePolicy:(LAPolicy)policy
   localizedReason:(NSString *)localizedReason 
    reply:(void(^)(BOOL success, NSError * __nullable error))reply;

localizedReason 设置提示语,TouchID用于什么目的
如果支持指纹解锁,在上述reply代码块内对指纹解锁时出现的各种情况进行下一步处理。
示例代码如下:

- (void)TouchIDAction{
    // 第二步,创建LAContext对象
    LAContext *context = [LAContext new];
    context.localizedFallbackTitle = @"右侧按钮标题"; // 解锁失败时,右侧按钮标题
    NSError *error = nil;
    // 第三步,判断是否支持指纹
    if ([context canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&error]) {
        NSLog(@"支持指纹解锁");
        [context evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:@"通过Home键验证已有手机指纹" reply:^(BOOL success, NSError * _Nullable error) {
            if (success) {
                NSLog(@"指纹验证成功,返回主界面");
            }else{
                NSLog(@"%@",error.localizedDescription);
                switch (error.code) {
                    case LAErrorSystemCancel:
                        NSLog(@"系统取消授权");
                        break;
                    case LAErrorUserCancel:
                        NSLog(@"用户取消指纹验证");
                        break;
                    case LAErrorAuthenticationFailed:
                        NSLog(@"提供验证的指纹,不存在");
                        break;
                    case LAErrorPasscodeNotSet:
                        NSLog(@"未设置指纹密码");
                        break;
                    case LAErrorTouchIDNotEnrolled:
                        NSLog(@"不能验证,指纹未被录入");
                        break;
                    case kLAErrorTouchIDLockout:
                        NSLog(@"超过5次输入错误,屏幕将锁住");
                        break;
                    case LAErrorTouchIDNotAvailable:
                        NSLog(@"不能获取到指纹");
                        break;
                    case LAErrorUserFallback:
                        NSLog(@"用户选择不使用TouchID解锁,即解锁失败后,点击右侧按钮");
                        [[NSOperationQueue mainQueue] addOperationWithBlock:^{
                            NSLog(@"用户选择使用密码登录");
                        }];
                        break;
                    default:
                        [[NSOperationQueue mainQueue] addOperationWithBlock:^{
                            NSLog(@"未知情况,返回主线程进行处理");
                        }];
                        break;
                }
            }
        }];
    }else{
        NSLog(@"不支持指纹解锁");
        NSLog(@"%@",error.localizedDescription);
    }
}

相关文章

  • 应用TouchID解锁

    第一步 导入对应的头文件 第二步 创建LAContext对象 localizedFallbckTitle 设置指纹...

  • 开启TouchID解锁

    NSUserDefaults中记录了此项的值,显示时直接读取设置开关的开与关状态即可 开关事件处理 - (void...

  • TouchID 指纹解锁

    一直想实现指纹解锁的功能, 今天抽空翻阅下文档写个Demo。该功能实现起来是很简单的,因为苹果都已经帮我们封装好了...

  • TouchID指纹解锁

    原文地址:http://blog.csdn.net/personsky/article/details/52413...

  • TouchID 指纹解锁

    简单的介绍 苹果于iOS 8时推出了TouchID(所以iPhone5及以下的设备是不支持的),并且进行了很完善的...

  • ios TouchID

    1.引入指纹解锁必须的头文件 2.了解TouchID最主要的两个方法这个方法是判断设备是否支持TouchID的。 ...

  • TouchID简单demo

    基于swift3.0的TouchID简单应用 TouchID需要用到LocalAuthentication.fra...

  • FaceID 开发

    LocalAuthentication FaceID和TouchID一样,都是用于解锁你的iOS设备的。它们都隶属...

  • iOS-高仿支付宝手势解锁(九宫格)

    基上篇TouchID 指纹解锁 的技术文, 然后目前又练习一种解锁方式: 九宫格手势解锁. 在一些涉及个人隐私的场...

  • iOS指纹解锁TouchID

    指纹解锁的使用越来越普遍了,主要是使用方便,再用之前还是先了解一下如何使用吧。 一、API介绍 使用指纹功能,必须...

网友评论

    本文标题:应用TouchID解锁

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