Ограничения
Если бы вы могли отправить SMS в рамках программы на iPhone, вы сможете писать игры, которые спамят людей в фоновом режиме. Я уверен, что вы действительно хотите получать спам от своих друзей: «Попробуйте эту новую игру! Она взломает мои боксеры, и ваши тоже будут! Roxxersboxxers.com !!!! Если вы зарегистрируетесь сейчас, вы получите 3200 РБ пункты !! "
Apple имеет ограничения для автоматизированных (или даже частично автоматизированных) операций SMS и набора номера. (Представьте, что игра набрала 911 в определенное время суток)
Лучше всего настроить промежуточный сервер в Интернете, который использует онлайн-службу отправки SMS-сообщений, и отправлять SMS-сообщения по этому маршруту, если вам нужна полная автоматизация. (т.е. ваша программа на iPhone отправляет UDP-пакет на ваш сервер, который отправляет реальное SMS)
Обновление iOS 4
iOS 4, однако, теперь предоставляет viewController
, который вы можете импортировать в свое приложение. Вы предварительно заполняете поля SMS, после чего пользователь может инициировать отправку SMS внутри контроллера. В отличие от использования формата URL «SMS: ...», это позволяет вашему приложению оставаться открытым и заполнять поля до и body . Вы даже можете указать несколько получателей.
Это предотвращает отправку приложениями автоматизированных SMS без явного уведомления пользователя. Вы все еще не можете отправить полностью автоматизированное SMS с самого iPhone, это требует некоторого взаимодействия с пользователем. Но это, по крайней мере, позволяет заполнить все и избежать закрытия приложения.
Класс MFMessageComposeViewController хорошо документирован, а учебники показывают, насколько легко это реализовать.
Обновление iOS 5
iOS 5 включает в себя обмен сообщениями для устройств iPod touch и iPad, поэтому, хотя я сам еще не проверял это, возможно, все устройства iOS смогут отправлять SMS через MFMessageComposeViewController. В этом случае Apple использует SMS-сервер, который отправляет сообщения от имени устройств, не имеющих сотового модема.
Обновление iOS 6
Нет изменений в этом классе.
Обновление iOS 7
Теперь вы можете проверить, будет ли используемый вами носитель сообщений принимать тему или вложения, а также какие вложения. Вы можете редактировать тему и добавлять вложения в сообщение, где это позволяет носитель.
Обновление iOS 8
Нет изменений в этом классе.
Обновление iOS 9
Нет изменений в этом классе.
Обновление iOS 10
Нет изменений в этом классе.
Обновление iOS 11
Нет существенных изменений в этом классе
Ограничения для этого класса
Имейте в виду, что это не будет работать на телефонах без iOS 4 и не будет работать на iPod touch или iPad, за исключением, возможно, под iOS 5. Вы должны либо определить ограничения устройства и iOS до использовать этот контроллер, или рискуйте ограничить свое приложение недавно обновленными 3G, 3GS и 4 iPhone.
Однако промежуточный сервер, который отправляет SMS, позволит всем этим устройствам iOS отправлять SMS, если у них есть доступ к Интернету, поэтому это может быть лучшим решением для многих приложений. В качестве альтернативы, используйте оба и обращайтесь к онлайн-сервису SMS, только если устройство не поддерживает его.