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

  • 相关阅读:
    C++中的派生类相关内容,结构体、共同体内容
    window查看端口以及telnet的使用
    java中long型转换为int
    C/C++数组初始化全为0
    linux中的一些指令 find
    bat相关知识
    bat设置开机自启动
    for循环语句及批量创建用户!
    Shell函数!
    case语句!
  • 原文地址:https://www.cnblogs.com/wb145230/p/4659193.html
Copyright © 2020-2023  润新知