Columna | Columna |
---|---|
Célula | Célula |
Primero, establezca si el dispositivo es capaz de aceptar la entrada Touch ID.
if (context.CanEvaluatePolicy(LAPolicy.DeviceOwnerAuthenticationWithBiometrics, out AuthError))
Si lo hace, entonces podemos mostrar la interfaz de usuario de Touch ID utilizando:
context.EvaluatePolicy(LAPolicy.DeviceOwnerAuthenticationWithBiometrics, myReason, replyHandler);
Hay tres datos que debemos pasar a EvaluatePolicy
: la política en sí misma, una cadena que explica por qué es necesaria la autenticación y un controlador de respuestas. El controlador de respuestas le dice a la aplicación lo que debe hacer en el caso de una autenticación exitosa o no exitosa.
Una de las advertencias de la autenticación local es que debe ejecutarse en primer plano, así que asegúrese de usar InvokeOnMainThread
para el controlador de respuesta:
var replyHandler = new LAContextReplyHandler((success, error) =>
{
this.InvokeOnMainThread(() =>
{
if (success)
{
Console.WriteLine("You logged in!");
PerformSegue("AuthenticationSegue", this);
}
else {
//Show fallback mechanism here
}
});
});
Para determinar si la base de datos de huellas dactilares autorizadas se ha modificado, puede verificar la estructura opaca (NSData) que devuelve context.EvaluatedPolicyDomainState
. Su aplicación deberá almacenar y comparar el estado de la política para detectar cambios. Una cosa a tener en cuenta que Apple dice:
Sin embargo, la naturaleza del cambio no se puede determinar a partir de estos datos.
if (context.CanEvaluatePolicy(LAPolicy.DeviceOwnerAuthenticationWithBiometrics, out AuthError))
{
var policyState = context.EvaluatedPolicyDomainState;
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);
};