Есть ли способ получить доступ к данным из iPhone inbox (SMS) в приложение ios, чтобы выполнить автоматическую проверку OTP, как в Android? Буду признателен за вашу помощь.
Автоматическая проверка OTP в iOS?
Ответ 1
В iOS 12 Apple представила функцию под названием " Security Code AutoFill
.
Чтобы использовать это в своем приложении, все, что вам нужно сделать, это установить UITextField
входные виды textContentType
property oneTimeCode
.
otpTextField.textContentType = .oneTimeCode
ПРИМЕЧАНИЕ. Код безопасности AutoFill будет работать только с System Keyboard, он не будет работать с пользовательской клавиатурой.
Когда вы получите OTP, он будет выглядеть примерно так:
Ответ 2
ОБНОВИТЬ
Начиная с iOS 12 Apple будет поддерживать автозаполнение паролей в UITextField, UITextView и любое пользовательское представление, которое принимает протокол UITextInput. Системная клавиатура установила для textContentType значение .oneTimeCode
1) Использование кода
singleFactorCodeTextField.textContentType =.oneTimeCode
2) Использование раскадровки /XIB
Выберите
UITextField
/UITextView
вstoryboard/XIB
Нажмите "Инспектор атрибутов". Перейти к черту ввода текста, нажмите на тип контента и выберите один код времени и все готово.
Операционная система автоматически обнаружит коды подтверждения из сообщений с этим набором UITextContentType
.
Предупреждение
Если вы используете пользовательское представление ввода для текстового поля ввода кода безопасности, iOS не сможет отобразить необходимый интерфейс автозаполнения.
Для получения дополнительной информации вы можете проверить это на Apple, разработчик oneTimeCode
Кроме того, просмотрите сессию 204 WWDC 2018 - Автоматическое заполнение надежных паролей и кодов безопасности и перейдите к 24:28 для автоматического предварительного заполнения OTP.
Ответ 3
ОБНОВИТЬ
Теперь это возможно в iOS 12 с автозаполнением кода безопасности
Apple использует его в проверке платежной карты Apple, поскольку iOS 11
Ответ 4
В Xamarin iOS, для> = iOS 12:
Прежде всего, в SMS необходимо указать ключевое слово "код" или "код доступа" в их сообщение и не использовать пробелы после кода. если вы получили SMS и у вас есть кнопка "Копировать код", тогда она будет работать
Затем вам нужно поместить это:
_txtField = new UITextField()
{
UserInteractionEnabled = true,
};
if (UIDevice.CurrentDevice.CheckSystemVersion(12, 0))
{
_txtField.TextContentType = UITextContentType.OneTimeCode;
}
_txtFieldDelegate = new UITextFieldDelegate();
_txtField.Delegate = _txtFieldDelegate;
_txtField.BecomeFirstResponder();
ПРИМЕЧАНИЕ. Автозаполнение кода безопасности работает только с Системной клавиатурой (не обычным).
Ответ 5
вы можете легко установить это в раскадровке
Ответ 6
Вы можете получить OTP из вашего сообщения.
otptextField.textContentType = .oneTimeCode
Можете пожалуйста получить проект по его ссылке.
Ответ 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
Нет.
Поскольку это будет считаться проблемой конфиденциальности, вы не сможете получить доступ к входящим почтовым ящикам пользователей.