iPhone X Face ID判断

使用Face ID识别方式需要在info.plist文件里增加key

NSFaceIDUsageDescription
允许设备访问Face ID

识别方法

+ (void)biologicalRecognitionResult:(void (^)(BOOL success, NSError *error))result{
    
    if (NSFoundationVersionNumber >= NSFoundationVersionNumber_iOS_8_0) {
        LAContext *context = [[LAContext alloc] init];
        /**
         需要先判断是否支持识别
         *LAPolicyDeviceOwnerAuthentication 手机密码的验证方式
         *LAPolicyDeviceOwnerAuthenticationWithBiometrics 指纹的验证方式,使用这种方式需要设置 context.localizedFallbackTitle = @""; 否则在验证失败时会出现点击无响应的“输入密码”按钮
         */
        if ([context canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:nil]) {
            /**
             需要先判断是否支持指纹或者Face ID识别后,才能判断是什么类型的识别方式
            */
            NSString *localizedReason = @"指纹登录";
            
            if (@available(iOS 11.0, *)) {
                if (context.biometryType == LABiometryTypeTouchID) {
                    
                }else if (context.biometryType == LABiometryTypeFaceID){
                    localizedReason = @"Face ID登录";
                }
            }
            
            [context evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:localizedReason reply:^(BOOL success, NSError * _Nullable error) {
                if (success) {
                    NSLog(@"--------识别成功");
                }else{
                    if (error.code != 2) {
                        
                    }
                }
            }];
        }
    }else {
        NSLog(@"你的设备不支持指纹识别");
    }
}

模拟器测试方法

选中模拟器,菜单栏--> Hardware --> Face ID/Touch ID
Enrolled                                   相当于已经设置了Face ID或者Touch ID
Matching Touch/Matching Face               匹配ID
Non-matching Touch/Non-matching Face       不匹配





你可能感兴趣的:(iOS)