Как обрабатывать ошибки в биометрической аутентификации для iOS в Xamarin?
if (context.CanEvaluatePolicy(LAPolicy.DeviceOwnerAuthenticationWithBiometrics, out AuthError)){
var replyHandler = new LAContextReplyHandler((success, error) => {
this.InvokeOnMainThread(()=> {
if(success)
{
Console.WriteLine("You logged in!");
PerformSegue("AuthenticationSegue", this);
}
else
{
// Show fallback mechanism here
}
});
});
context.EvaluatePolicy(LAPolicy.DeviceOwnerAuthenticationWithBiometrics, myReason, replyHandler);
};
Я хочу обработать ошибки в условии else в зависимости от типа ошибки.
1 ответ
Вы можете получить код ошибки из NSError
вернулся и обработать его против LAStatus
коды:
switch (error.Code)
{
case (long)LAStatus.AuthenticationFailed:
~~~
break;
case (long)LAStatus.UserCancel:
~~~
break;
~~~
default:
break;
}
LAStatus (с обнаженными амортизациями):
public enum LAStatus : long
{
Success,
AuthenticationFailed = -1L,
UserCancel = -2L,
UserFallback = -3L,
SystemCancel = -4L,
PasscodeNotSet = -5L,
AppCancel = -9L,
InvalidContext = -10L,
BiometryNotAvailable = -6L,
BiometryNotEnrolled = -7L,
BiometryLockout = -8L,
NotInteractive = -1004L
}
Для описания различных кодов вы можете использовать LAError.Code: