6

デバイスが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 をサポートしていることを知りたいだけです

4

3 に答える 3