iOS 12 SMS Reading API?

让人想犯罪 __ 提交于 2019-12-01 01:04:34

问题


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.


回答1:


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:




回答2:


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.




回答3:


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




回答4:


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




回答5:


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



回答6:


Worthg mentioning that it seems "Autofill Passowrds" keyboard option needs to be turned on on the phone.



来源:https://stackoverflow.com/questions/50791050/ios-12-sms-reading-api

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!