如果设备支持Face ID或Touch ID,我想对用户采取不同的操作。
使用Face ID时,iOS 要求使用权限。(与触控 ID 不同)。
如果用户拒绝许可,context.biometryType 返回 LABiometryTypeNone。
无论如何要检查设备支持的Touch ID或Face ID。
LAContext *context = [[LAContext alloc] init];
NSError *error;
if ([context canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&error]) {
}
if (@available(iOS 11.0, *)) {
if (context.biometryType == LABiometryTypeFaceID) {
// support FaceID
}
}
// support TouchID
控制台输出
(lldb) po error
Error Domain=com.apple.LocalAuthentication Code=-6 "User has denied the use of biometry for this app." UserInfo={NSLocalizedDescription=User has denied the use of biometry for this app.}
(lldb) po context.biometryType
LABiometryTypeNone
注意:我不想使用密码验证。我只需要知道 设备是否支持 Touch ID 或 Face ID