デバイスがFace IDまたはTouch IDをサポートしている場合、ユーザーにさまざまなアクションを実行したいと考えています。
Face IDを使用する場合、iOS は使用許可を求めます。(Touch 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 をサポートしていることを知りたいだけです