Чтение SMS-сообщения в iOS
Я разработчик iOS, и я попытался создать мобильное приложение с автоматической активацией, я нашел больше, чем читать SMS-сообщение, но только с использованием частного API, который вызовет отклонение Apple в моем приложении. У меня есть два вопросы и оценка любой обратной связи может помочь мне.
1 Есть ли способ прочитать SMS-сообщение на платформе iOS без отказа Apple?
2- Может ли кто-нибудь предоставить мне соответствующий раздел в документации разработчика Apple, раздел, в котором описывается, что его не разрешено читать SMS-сообщение на платформе iOS?
Ответы
Ответ 1
- Нет, нет возможности читать смс сообщения. Apple очень строга к этому из-за проблем с конфиденциальностью.
- Войдите на портал разработчиков и нажмите " Рекомендации по рассмотрению в App Store".
Нигде в рекомендациях не указано, что вы не можете получить доступ к SMS. Но вы можете получить доступ только тогда, если вы используете приватные методы, которые не разрешены и приведут к отклонению вашего приложения.
Вы можете получить доступ только к тем данным, для которых Apple предоставляет документированный API. Вы не можете получить доступ к файлу вне Песочницы вашего Приложения, если Apple не предоставит API для него.
Ответ 2
ОБНОВИТЬ
Начиная с iOS 12, Apple поддерживает чтение кода безопасности (OTP - одноразовые пароли) в текстовых полях.
oneTimeCode
Определяет ожидание однофакторного кода входа в SMS.
Вы можете автоматически заполнять коды безопасности из однофакторных потоков входа в SMS:
yourSingleFactorCodeTextField.textContentType = .oneTimeCode
iOS поддерживает автозаполнение пароля в UITextField, UITextView и в любом настраиваемом представлении, использующем протокол UITextInput.
Предупреждение
Если вы используете пользовательское представление ввода для текстового поля ввода кода безопасности, iOS не сможет отобразить необходимый интерфейс автозаполнения.
![Security Code Autofill]()
Ответ 3
Начиная с iOS 12 Apple будет поддерживать автозаполнение паролей в UITextField
, UITextView
и любое пользовательское представление, которое принимает protocol
UITextInput
. Системная клавиатура установила для textContentType
значение .oneTimeCode
- Использование раскадровки /XIB
Выберите UITextField
/UITextView
в storyboard/XIB
Нажмите "Инспектор атрибутов". Перейти к черту ввода текста, нажмите на тип контента и выберите один код времени и все готово.
Работает только с системной клавиатурой. Поэтому не используйте пользовательскую клавиатуру.
А для получения дополнительной информации вы также просмотрите сеанс 204 WWDC 2018 - Автоматическое заполнение надежных паролей и кодов безопасности и перейдете к 24:28 для автоматического предварительного заполнения OTP.
![iPhoneX image]()
Ответ 4
Для Swift 5:
Начиная с iOS 12, Apple поддерживает чтение кода безопасности (OTP - одноразовые пароли) в текстовых полях.
if #available(iOS 12.0, *) {
otpField.keyboardType = .default
otpField.textContentType = .oneTimeCode
} else {
// Fallback on earlier versions
}
Или вы можете добавить этот contentType из раскадровки, как показано ниже:
![enter image description here]()