Автоматическая проверка OTP в iOS?
Есть ли способ получить доступ к данным из iPhone inbox (SMS) в приложение ios, чтобы выполнить автоматическую проверку OTP, как в Android? Буду признателен за вашу помощь.
Ответы
Ответ 1
В iOS 12 Apple представила функцию под названием " Security Code AutoFill
.
Чтобы использовать это в своем приложении, все, что вам нужно сделать, это установить UITextField
входные виды textContentType
property oneTimeCode
.
otpTextField.textContentType = .oneTimeCode
ПРИМЕЧАНИЕ. Код безопасности AutoFill будет работать только с System Keyboard, он не будет работать с пользовательской клавиатурой.
Видео WWDC
Когда вы получите OTP, он будет выглядеть примерно так:
![enter image description here]()
Ответ 2
ОБНОВИТЬ
Начиная с iOS 12 Apple будет поддерживать автозаполнение паролей в UITextField, UITextView и любое пользовательское представление, которое принимает протокол UITextInput. Системная клавиатура установила для textContentType значение .oneTimeCode
1) Использование кода
singleFactorCodeTextField.textContentType =.oneTimeCode
2) Использование раскадровки /XIB
Выберите UITextField
/UITextView
в storyboard/XIB
Нажмите "Инспектор атрибутов". Перейти к черту ввода текста, нажмите на тип контента и выберите один код времени и все готово.
Операционная система автоматически обнаружит коды подтверждения из сообщений с этим набором UITextContentType
.
Предупреждение
Если вы используете пользовательское представление ввода для текстового поля ввода кода безопасности, iOS не сможет отобразить необходимый интерфейс автозаполнения.
![WWDC 2018 iPhoneX Device]()
Для получения дополнительной информации вы можете проверить это на Apple, разработчик oneTimeCode
Кроме того, просмотрите сессию 204 WWDC 2018 - Автоматическое заполнение надежных паролей и кодов безопасности и перейдите к 24:28 для автоматического предварительного заполнения OTP.
Ответ 3
ОБНОВИТЬ
Теперь это возможно в iOS 12 с автозаполнением кода безопасности
Apple использует его в проверке платежной карты Apple, поскольку iOS 11
![enter image description here]()
Ответ 4
В Xamarin iOS, для> = iOS 12:
Прежде всего, в SMS необходимо указать ключевое слово "код" или "код доступа" в их сообщение и не использовать пробелы после кода. если вы получили SMS и у вас есть кнопка "Копировать код", тогда она будет работать
![enter image description here]()
Затем вам нужно поместить это:
_txtField = new UITextField()
{
UserInteractionEnabled = true,
};
if (UIDevice.CurrentDevice.CheckSystemVersion(12, 0))
{
_txtField.TextContentType = UITextContentType.OneTimeCode;
}
_txtFieldDelegate = new UITextFieldDelegate();
_txtField.Delegate = _txtFieldDelegate;
_txtField.BecomeFirstResponder();
ПРИМЕЧАНИЕ. Автозаполнение кода безопасности работает только с Системной клавиатурой (не обычным).
Ответ 5
вы можете легко установить это в раскадровке
![Click on Attribute inspector. Go to text input trait, click on Content type and select one time code]()
Ответ 6
Вы можете получить OTP из вашего сообщения.
otptextField.textContentType = .oneTimeCode
Можете пожалуйста получить проект по его ссылке.
https://github.com/karthickkck315/Automatic-OTP
Ответ 7
Также важно, чтобы полученное текстовое сообщение содержало что-то с "кодом", например
. "your passcode is:123456"
или
"12345 - ваш код для входа в систему"
что-то в этом роде.
НЕ!
Your App: 12345
Вы можете проверить, будет ли код в вашем текстовом сообщении работать с типом .oneTimeCode, нажав подчеркнутый код в вашем сообщении. Если всплывет диалоговое окно с надписью "скопировать код", вы можете идти. В противном случае вам может понадобиться изменить текст вашего сообщения.
Ответ 8
В iOS 12 можно
вам нужно изменить UITextField OTPs textContentType на.oneTimeCode.
yourOtpTextField.textContentType = .oneTimeCode
Этого также можно добиться с помощью раскадровки
Выберите UITextField в раскадровке /XIB щелкните Щелкните по инспектору атрибутов. Перейдите к черту ввода текста, выберите тип содержимого и выберите один временной код и выполните его.
* Защитный код работает только с Системной клавиатурой. Поэтому избегайте использования пользовательской клавиатуры.
Ответ 9
Я написал подробную статью о том, как выполнить автозаполнение OTP и автозаполнение после автозаполнения OTP. Не стесняйтесь проверить это. Дайте мне знать, что вы, ребята, думаете. https://medium.com/a-developer-in-making/how-to-implement-automatic-otp-verification-in-ios-7813c6116a1d?source=friends_link&sk=db83b74c44ed347d8fe6d349c7ad75c8
Ответ 10
Также... на телефоне "Автозаполнение паролей" необходимо включить.
Ответ 11
if(server.google==server.connected)}{
return server;
}
при подключении сделать лямбду ( e-> "")
;
!!
Ответ 12
Нет.
Поскольку это будет считаться проблемой конфиденциальности, вы не сможете получить доступ к входящим почтовым ящикам пользователей.