Как проверить включение TouchID или нет

Есть ли способ проверить, включено ли мое приложение с TouchID,

Как я могу проверить, включено ли мое приложение с TouchID,

Например:

В DropBox есть возможность включить датчик печати фигуры. Теперь есть какой-нибудь способ проверить, показывает ли мое приложение экран TouchID на основе включения Touchid.

3 ответа

Решение

Согласно вы используете Objective-C

Сначала добавьте метод для проверки версии iOS

TouchID нужен iOS8+ для работы

#define SYSTEM_VERSION_EQUAL_TO(v)                  ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedSame)
#define SYSTEM_VERSION_GREATER_THAN(v)              ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedDescending)
#define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v)  ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending)
#define SYSTEM_VERSION_LESS_THAN(v)                 ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedAscending)
#define SYSTEM_VERSION_LESS_THAN_OR_EQUAL_TO(v)     ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedDescending)

Затем используйте LAContext canEvaluatePolicy:error: оценить, если TouchID существовать

Предварительно отображает политику проверки подлинности, чтобы увидеть, возможно ли успешное выполнение проверки подлинности

- (BOOL)isTouchIDAvailable {
    if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"8.0")) {
        return [[[LAContext alloc] init] canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:nil];
    }
    return NO;
}

Вы не хотите проверять версию iOS, конечно, она может работать, но это плохая практика. Вместо этого проверьте функцию. Посмотрите, доступен ли LAContext.

if ([LAContext class]) {
    // touch ID is available for the device
    // call canEvaluatePolicy:error to see if the user has set a fingerprint.
}

Предполагается, что цель развертывания ios 8+

    var authError : NSError?
    if LAContext().canEvaluatePolicy(LAPolicy.DeviceOwnerAuthenticationWithBiometrics, error: &authError) {
          // do your thing dependent on touch id being useable on the device
    }

если вам все еще нужна поддержка ios7, сделайте дополнительный обруч

   if NSClassFromString("LAContext") != nil && LAContext().canEvaluatePolicy(LAPolicy.DeviceOwnerAuthenticationWithBiometrics, error: &authError) {
Другие вопросы по тегам