Looking for xamarin.ios Keywords? Try Ask4Keywords

Xamarin.iOSBerührungsidentifikation


Parameter

Säule Säule
Zelle Zelle

Bemerkungen

Stellen Sie zunächst fest, ob das Gerät die Touch ID-Eingabe akzeptieren kann.

if (context.CanEvaluatePolicy(LAPolicy.DeviceOwnerAuthenticationWithBiometrics, out AuthError))

Wenn dies der Fall ist, können Sie die Touch-ID-Benutzeroberfläche anzeigen, indem Sie Folgendes verwenden:

context.EvaluatePolicy(LAPolicy.DeviceOwnerAuthenticationWithBiometrics, myReason, replyHandler);

Es gibt drei Informationen, die wir an EvaluatePolicy - die Richtlinie selbst, eine Zeichenfolge, aus der hervorgeht, warum eine Authentifizierung erforderlich ist, und einen Antworthandler. Der Antworthandler teilt der Anwendung mit, was sie im Falle einer erfolgreichen oder erfolglosen Authentifizierung tun soll.

Eine der Einschränkungen der lokalen Authentifizierung besteht darin, dass sie im Vordergrund ausgeführt werden muss. InvokeOnMainThread daher sicher, dass Sie InvokeOnMainThread für den InvokeOnMainThread :

var replyHandler = new LAContextReplyHandler((success, error) =>
    {

        this.InvokeOnMainThread(() =>
        {
            if (success)
            {
                Console.WriteLine("You logged in!");
                PerformSegue("AuthenticationSegue", this);
            }
            else {
                //Show fallback mechanism here
            }
        });

    });

Um festzustellen, ob die Datenbank autorisierter Fingerabdrücke geändert wurde, können Sie die von context.EvaluatedPolicyDomainState undurchsichtige Struktur (NSData) context.EvaluatedPolicyDomainState . Ihre App muss den Richtlinienstatus speichern und vergleichen, um Änderungen zu erkennen. Eine Sache, die Apple feststellt:

Die Art der Änderung kann jedoch nicht aus diesen Daten bestimmt werden.

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);
};

Berührungsidentifikation Verwandte Beispiele