In der Beta-Version von iOS 12 habe ich beobachtet, dass es OTP (von SMS) im Tastaturvorschlag gibt.
Gibt es eine API, die sie für Entwickler erstellt haben? Oder das wäre nur eine OS-Funktion.
Dies ist eine Funktion des Betriebssystems, aber Sie müssen die UITextField
-Eigenschaft der textContentType
-Variable oneTimeCode
einstellen.
otpTextField.textContentType = .oneTimeCode
HINWEIS: Sicherheitscode AutoFill funktioniert nur mit der Systemtastatur, nicht mit der benutzerdefinierten Tastatur.
Wenn Sie OTP erhalten, sieht es ungefähr so aus:
Leider können Sie die vollständige Nachricht nicht lesen. Sie können nur den Bestätigungscode in der Nachricht lesen.
Swift:
@available(iOS 12.0, *)
public static let oneTimeCode: UITextContentType
myTextField.textContentType = .oneTimeCode
Ziel c:
UITextContentType const UITextContentTypeOneTimeCode NS_AVAILABLE_IOS(12_0);
myTextField.textContentType = UITextContentTypeOneTimeCode;
Der folgende Bestätigungscode kann vom System erkannt werden:
Eine reine Anzahl von Längen von 3-8
wie: 123 1234 12345 666666 1234567 12345678 ...
Der folgende Bestätigungscode kann vom System NICHT erkannt werden:
(i) .Länge des Codes ist weniger als 3 oder mehr als 8 (ii) .inklude Buchstaben
wie: 1 12 123a 9h7d 123456789 ...
Andere:
Sicherheitscode AutoFill funktioniert nur mit der Systemtastatur. Es funktioniert nicht mit der benutzerdefinierten Tastatur.
Es gibt keine API, aber Sie müssen textContentType
als .oneTimeCode
der UITextField
-Eigenschaft festlegen
otpTextField.textContentType = .oneTimeCode
eine Sache noch,
Wenn Sie eine benutzerdefinierte Eingabeansicht für ein Textfeld verwenden, iOS kann die erforderliche AutoFill-Benutzeroberfläche nicht anzeigen.
Erwähnenswert ist, dass die Tastaturoption "Autofill Passwords" am Telefon aktiviert sein muss.
Nein, dafür gibt es keine öffentliche API. Sie wird automatisch von OS ..__ verarbeitet. Sie müssen lediglich die textContentType-Eigenschaft der UITextField-Eingabesicht auf oneTimeCode setzen.
textField.textContentType = .oneTimeCode
Zusätzlich zu anderen Antworten muss die Textnachricht nach dem Testen entweder "Bestätigungsnummer" oder "Code" enthalten, bevor die Nummer ordnungsgemäß funktioniert.
Arbeiten:
Funktioniert nicht: