Gibt es eine Möglichkeit, auf Daten vom iPhone-Posteingang (SMS) auf die iOS-Anwendung zuzugreifen, um eine automatische OTP-Überprüfung wie in Android durchzuführen? Ich werde für Ihre Hilfe dankbar sein.
In iOS 12 hat Apple eine Funktion namens Security Code AutoFill
eingeführt.
Um dies in Ihrer App zu verwenden, müssen Sie lediglich die UITextField
-Eigenschaft textContentType
der Eingabeansicht von oneTimeCode
einstellen.
otpTextField.textContentType = .oneTimeCode
NOTE: Sicherheitscode AutoFill funktioniert nur mit der Systemtastatur, nicht mit der benutzerdefinierten Tastatur.
Wenn Sie OTP erhalten, sieht es ungefähr so aus:
UPDATE
Dies ist jetzt in iOS 12 mit Security Code Autofill
Apple verwendet es seit iOS 11 bei der Überprüfung der Apple-Zahlungskarte
UPDATE
Ab iOS 12 unterstützt Apple Password AutoFill für UITextField, UITextView und jede benutzerdefinierte Ansicht, die das UITextInput-Protokoll verwendet. Die Systemtastatur hat den textContentType auf .oneTimeCode gesetzt.
1) Verwenden von Code
singleFactorCodeTextField.textContentType = .oneTimeCode
2) Storyboard/XIB verwenden
Wählen Sie
UITextField
UITextView
instoryboard/XIB
aus. Klicken Sie auf Attribut Inspektor. Gehen Sie zum Texteingabemerkmal, klicken Sie auf Inhaltstyp und wählen Sie .__ aus. ein Zeitcode und fertig.
Das Betriebssystem erkennt Bestätigungscodes von Messages automatisch mit dieser UITextContentType
-Einstellung.
Warnung
Wenn Sie eine benutzerdefinierte Eingabeansicht für ein Sicherheitscode-Eingabetextfeld verwenden, iOS kann die erforderliche AutoFill-Benutzeroberfläche nicht anzeigen.
Weitere Informationen finden Sie auf dem Apple-Entwickler _/oneTimeCode .
Überprüfen Sie außerdem WWDC 2018 Session 204 - Automatische strikte Kennwörter und Sicherheitscode AutoFill und springen Sie zu 24:28, um die OTP automatisch vorzufüllen.
In Xamarin iOS für> = iOS 12:
Zuallererst müssen die SMS das Schlüsselwort "code" oder "passcode" enthalten, und darf nach dem Code keine Leerzeichen verwenden. Wenn Sie die SMS erhalten haben und die Schaltfläche "Code kopieren" haben, funktioniert es
Dann musst du das platzieren:
_txtField = new UITextField()
{
UserInteractionEnabled = true,
};
if (UIDevice.CurrentDevice.CheckSystemVersion(12, 0))
{
_txtField.TextContentType = UITextContentType.OneTimeCode;
}
_txtFieldDelegate = new UITextFieldDelegate();
_txtField.Delegate = _txtFieldDelegate;
_txtField.BecomeFirstResponder();
HINWEIS: Der Sicherheitscode AutoFill funktioniert nur mit der Systemtastatur (nicht benutzerdefiniert).
Es ist auch wichtig, dass die empfangene SMS etwas mit "Code" wie enthält
"Ihr Passwort lautet: 123456"
oder
"12345 ist Ihr Code zum Einloggen"
etwas in diese Richtung.
NICHT!
Ihre App: 12345
sie können überprüfen, ob der Code in Ihrer Textnachricht mit dem Typ .oneTimeCode kompatibel ist, indem Sie auf den unterstrichenen Code in Ihrer Nachricht tippen. Wenn ein Dialogfeld mit der Aufschrift "Code kopieren" angezeigt wird, können Sie loslegen. Andernfalls müssen Sie möglicherweise den Text Ihrer Nachricht ändern.
Sie können OTP von Ihrer Nachricht erhalten.
otptextField.textContentType = .oneTimeCode
Kann bitte das Projekt von seinem Link bekommen.