Reputation: 537
In Beta version of iOS 12 I have observed it gives OTP(from SMS) in keyboard suggestion.
So is there any API which they have created for developers ? Or that would just be an OS feature.
Upvotes: 10
Views: 11079
Reputation: 31
Adding to other answers, after testing it seems that the text message needs to include either "Verification number" or "Code" before the number to work properly.
Working:
Not working:
Upvotes: 3
Reputation: 1917
Worthg mentioning that it seems "Autofill Passowrds" keyboard option needs to be turned on on the phone.
Upvotes: 1
Reputation: 115
No there is no public API for that. It is automatically handled by OS. You just need to set UITextField's input view’s textContentType property to oneTimeCode.
textField.textContentType = .oneTimeCode
Upvotes: 0
Reputation: 358
Unfortunately, you can't read the full message, you can only read the verify-code in the message.
Swift:
@available(iOS 12.0, *)
public static let oneTimeCode: UITextContentType
myTextField.textContentType = .oneTimeCode
Objective-C:
UITextContentType const UITextContentTypeOneTimeCode NS_AVAILABLE_IOS(12_0);
myTextField.textContentType = UITextContentTypeOneTimeCode;
These following verification code CAN be recognized by the system:
A pure number of lengths of 3-8
like : 123 1234 12345 666666 1234567 12345678 ...
These following verification code CANNOT be recognized by the system:
(i).length of code is less than 3 or more than 8 (ii).include letters
like : 1 12 123a 9h7d 123456789 ...
Others:
Security Code AutoFill will only works with System Keyboard. It will not work with custom keyboard.
Upvotes: 6
Reputation: 2368
There is no api, but you need set textContentType
as .oneTimeCode
of UITextField
property
otpTextField.textContentType = .oneTimeCode
one more thing,
If you use a custom input view for text field, iOS cannot display the necessary AutoFill UI.
Click here for more info by apple
Upvotes: 4
Reputation: 6611
It is OS feature but you need to set UITextField
's input view’s textContentType
property oneTimeCode
.
otpTextField.textContentType = .oneTimeCode
NOTE: Security Code AutoFill will only works with System Keyboard it will not work with custom keyboard.
When you get OTP it will look something like this:
Upvotes: 9