Automatic OTP verification in iOS?

安稳与你 提交于 2019-12-17 15:35:44

问题


Is there any way to access data from iPhone inbox(SMS) to ios application to do automatic OTP verification like the one in Android? I shall be grateful for your help.


回答1:


In iOS 12 Apple has introduced feature called Security Code AutoFill.

To use this in your app all you need to do is 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.

WWDC video

When you get OTP it will look something like this:




回答2:


UPDATE

From iOS 12 Apple will supports Password AutoFill on UITextField, UITextView, and any custom view that adopts the UITextInput protocol. System keyboard set the textContentType on it to .oneTimeCode

1) Using Code

singleFactorCodeTextField.textContentType = .oneTimeCode

2) Using Storyboard/XIB

Select UITextField/UITextView in storyboard/XIB click Click on Attribute inspector. Go to text input trait, click to Content type and select one time code and done.

The operating system will detect verification codes from Messages automatically with this UITextContentType set.

Warning

If you use a custom input view for a security code input text field, iOS cannot display the necessary AutoFill UI.

For more information, you can check it on the Apple developer oneTimeCode

And also review WWDC 2018 Session 204 - Automatic Strong Passwords and Security Code AutoFill and jump to 24:28 for automatic pre-fill the OTP.




回答3:


UPDATE

This is now possible in iOS 12 with Security Code Autofill

Apple is using it in apple pay card verification since iOS 11




回答4:


In Xamarin iOS, for >=iOS 12:

First of all, the SMS need to have the keyword "code" or "passcode" into their message, and don't use spaces after the code. if you received the SMS and you have the button "Copy Code" then it will works

Then you need to place this:

_txtField = new UITextField()
{
   UserInteractionEnabled = true,
};
if (UIDevice.CurrentDevice.CheckSystemVersion(12, 0))
{
  _txtField.TextContentType = UITextContentType.OneTimeCode;          
}
_txtFieldDelegate = new UITextFieldDelegate();
_txtField.Delegate = _txtFieldDelegate;
_txtField.BecomeFirstResponder();

NOTE: Security Code AutoFill will only works with System Keyboard (not custom).




回答5:


you can easily set this in Storyboard




回答6:


It is also important that the text message you receive contains something with "code" like

"your passcode is:123456"

or

"12345 is your code to log in"

something along that line.

NOT!

Your App: 12345

you can verify if the code in your text message will work with the .oneTimeCode type by tapping the underlined code in your message. If a dialog pops up that says "copy code", you are good to go. Otherwise you might need to change the text of your message.




回答7:


You can get OTP from your message.

otptextField.textContentType = .oneTimeCode

Can please get the project from his link.

https://github.com/karthickkck315/Automatic-OTP




回答8:


Also...on the phone "Autofill Passwords" needs to be turned on.




回答9:


if(server.google==server.connected)}{
   return server;
}

when connected make a lambda ( e-> ""); !!




回答10:


No.

Because this would be considered a privacy issue, you cannot access the users SMS inbox.



来源:https://stackoverflow.com/questions/39631168/automatic-otp-verification-in-ios

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