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.
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:
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.
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.
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
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:
- Verification number 1234
- Verification number: 1234
- Verification code 1234
- Verification code: 1234
- Code 1234
- Code: 1234
Not working:
- Number 1234
- Verification 1234
- 1234
来源:https://stackoverflow.com/questions/50791050/ios-12-sms-reading-api