Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

iOS 12 SMS Reading API?

Tags:

ios

sms

ios12

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.

like image 627
NITESH Avatar asked Jun 11 '18 05:06

NITESH


Video Answer


4 Answers

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

like image 119
iParesh Avatar answered Oct 24 '22 20:10

iParesh


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
  • OTP 1234
  • OTP: 1234

Not working:

  • Number 1234
  • Verification 1234
  • 1234
like image 37
jonoljon Avatar answered Oct 24 '22 21:10

jonoljon


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:

enter image description here

like image 25
iVarun Avatar answered Oct 24 '22 20:10

iVarun


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.

like image 35
刘俊利 Avatar answered Oct 24 '22 21:10

刘俊利