• apple面容、指纹验证使用


    1、导入包

    #import <LocalAuthentication/LocalAuthentication.h>
    

    2、使用

    - (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {
        [super touchesBegan:touches withEvent:event];
        
        LAContext *lacontext = [[LAContext alloc] init];
        BOOL support = [lacontext canEvaluatePolicy:LAPolicyDeviceOwnerAuthentication error:NULL];
        if(@available(iOS 11.0, *)) {
            if([lacontext respondsToSelector:@selector(biometryType)]){
                if(lacontext.biometryType == LABiometryTypeFaceID) {
                    CHLog(@"面容ID登录");
                    // LAPolicyDeviceOwnerAuthenticationWithBiometrics:
                    [lacontext evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics
                              localizedReason:@"面容ID登录..."
                                        reply:^(BOOL success, NSError * _Nullable error) {
                        if (success) {
                            
                        }
                        else {
                            LAError code = error.code;
                            switch (code) {
                                case LAErrorAuthenticationFailed:
                                    CHLog(@"身份验证失败");
                                    break;
                                case LAErrorUserCancel:
                                    CHLog(@"用户在认证时点击取消");
                                    break;
                                case LAErrorUserFallback:
                                    CHLog(@"用户点击输入密码取消指纹/面容验证");
                                    break;
                                case LAErrorSystemCancel:
                                    CHLog(@"身份认证被系统取消(按下Home键或电源键)");
                                    break;
                                case LAErrorPasscodeNotSet:
                                    CHLog(@"设备未设置密码");
                                    break;
                                case LAErrorTouchIDNotAvailable:
                                    CHLog(@"该设备指纹验证不可用");
                                    break;
                                case LAErrorTouchIDNotEnrolled:
                                    CHLog(@"用户未录入指纹");
                                    break;
                                case LAErrorTouchIDLockout:
                                    CHLog(@"连续五次密码错误,FaceID被锁定.");
                                    break;
                                case LAErrorAppCancel:
                                    CHLog(@"用户不能控制情况下App被挂起.");
                                    break;
                                default:
                                    break;
                            }
                        }
                    }];
                }
                else if(lacontext.biometryType == LABiometryTypeTouchID) {
                    CHLog(@"指纹登录");
                }
                else {
                    CHLog(@"未授权");
                }
            }
        }
    }
    
  • 相关阅读:
    SQL SQL 连接 JOIN 例解。(左连接,右连接,全连接,内连接,交叉连接,自连接)[转]
    ADO.NET 1.基础(SqlCommand\ExecuteScalar\ExecuteReader\sqlDataAdapter)
    SQL 14.子查询
    winform 基础
    SQL – 12.索引 + 13.join
    判断是否为数字
    SQL 17.存储过程
    SQL 16.事务
    SQL 15.变量和流程控制
    SQL 18.触发器
  • 原文地址:https://www.cnblogs.com/CH520/p/13174702.html
Copyright © 2020-2023  润新知