iPhoneX适配faceId:苹果官方技术文档:
https://developer.apple.com/documentation/localauthentication/labiometrytype
LAContext *context = [[LAContext alloc] init];
//判断是支持touchid还是faceid
if (@available(iOS 11.0, *)) {
switch (context.biometryType) {
case LABiometryNone:
NSLog(@"-----------touchid,faceid都不支持");
break;
case LABiometryTypeTouchID:
NSLog(@"-----------touchid支持");
break;
case LABiometryTypeFaceID:
NSLog(@"-----------faceid支持");
break;
default:
break;
}
} else {
// Fallback on earlier versions
NSLog(@"-----------iOS11之前的版本,不做id判断");
}
网友评论
LABiometryType 这个枚举不是你这么判断的,仔细看下文档的描述。This property is set only when canEvaluatePolicy succeeds for a biometric policy.The default value is LABiometryNone.。仅当canEvaluatePolicy策略成功执行的时候biometryType属性才会被设置,你才能拿到这个属性的值,为出力canEvaluatePolicy策略前,biometryType属性是没有值的。