iOS - сообщение об ошибке изменения локальной аутентификации
В моем приложении есть служба LA, которая использует TouchID, как обычно. Проблема в том, что я хочу изменить то, что написано в предупреждении, которое отображается при запросе аутентификации touchId. Сначала он показывает то, что я объявляю в строке причины, затем, если аутентификация завершается неудачно, он только меняет заголовок на "Повторить", но тело остается прежним.
Есть ли шанс изменить тело оповещения для другого сообщения при сбое аутентификации? Я попытался изменить строку причины, но безрезультатно.
Этот проект создан с использованием Xamarin, но код Objective-C/Swift также приемлем. Заранее спасибо!
UPD: вот мой код:
if (context.CanEvaluatePolicy(LAPolicy.DeviceOwnerAuthenticationWithBiometrics, out authError))
{
var myReason = new NSString("Use your finger to authenticate");
replyHandler = new LAContextReplyHandler((success, error) =>
{
InvokeOnMainThread(() =>
{
if (success)
{
Login();
}
else
{
myReason = new NSString("Nope try again");
switch ((long)error.Code)
{
case (long)LAStatus.TouchIDLockout: // 5 times wrong, TouchID is locked system-wide
{
var alert = new UIAlertView("Sorry", "Exceeded and blocked message", null, "OK");
alert.Show();
touchIdButton.Hidden = true;
}
break;
case (long)LAStatus.AuthenticationFailed: // 3 times wrong
{
var alert = new UIAlertView("Sorry", "Exceeded message", null, "OK");
alert.Show();
touchIdButton.Hidden = true;
}
break;
case (long)LAStatus.UserFallback: //Enter Passcode
//no UserFallback for now
break;
}
}
});
});
context.EvaluatePolicy(LAPolicy.DeviceOwnerAuthenticationWithBiometrics, myReason, replyHandler);
1 ответ
Нет. Не существует API для изменения Причины между процессами аутентификации.
См. https://developer.apple.com/documentation/localauthentication/lacontext/1514176-evaluatepolicy
localizedReason
Предоставленная приложением причина для запроса аутентификации, которая отображается в диалоговом окне аутентификации, представленном пользователю.
Это означает: то, что вы пытаетесь, не предназначено Apple. Причина запроса аутентификации остается той же, независимо от числа неудачных попыток. Другими словами: ваша причина запроса не изменилась после первой неудачной попытки.
Раздел рекламы
Если вы заинтересованы в кроссплатформенном решении для аутентификации по отпечаткам пальцев, взгляните на мой плагин:) https://github.com/smstuebe/xamarin-fingerprint