zoukankan      html  css  js  c++  java
  • 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博客园看到本文,请点击查看原文.

  • 相关阅读:
    HTTP请求中的GET-POST方式
    拦截器与过滤器的不同点
    SQL练习题(一)
    Maven聚合工程安装时排除掉不参与本次安装的子工程
    codeforce 796C
    [CF1216E] Numerical Sequence hard version
    【floyd+矩阵乘法】POJ 3613 Cow Relays
    BZOJ 3573米特运输
    Poj 3977 Subset
    【树形dp】Bzoj 1040骑士
  • 原文地址:https://www.cnblogs.com/wb145230/p/4659193.html
Copyright © 2011-2022 走看看