Кто - нибудь знает , если это возможно, и как программно отправить SMS из iPhone
, с официальным SDK / Cocoa Touch?
ios
objective-c
cocoa-touch
sms
Нитин Гохель
источник
источник
tools->script editor
запрос POST и использоватьMailApp.sendEmail
API для отправки электронной почты на номер телефона. att's - YOURNUMBER@mms.att.net, tmobile - YOURNUMBER@tmomail.net Я думаю (ВСЕ БЕСПЛАТНО)Ответы:
ограничения
Если бы вы могли отправить SMS в рамках программы на iPhone, вы сможете писать игры, которые спамят людей в фоновом режиме. Я уверен, что вы действительно хотите получать спам от своих друзей: «Попробуйте эту новую игру! Она взломает мои боксеры, и ваши тоже будут! Roxxersboxxers.com !!!! Если вы зарегистрируетесь сейчас, вы получите 3200 РБ» точки!!"
У Apple есть ограничения для автоматизированных (или даже частично автоматизированных) операций SMS и набора номера. (Представьте, что игра набрала 911 в определенное время суток)
Лучше всего настроить промежуточный сервер в Интернете, который использует онлайн-службу отправки SMS-сообщений, и отправлять SMS-сообщения по этому маршруту, если вам нужна полная автоматизация. (т.е. ваша программа на iPhone отправляет UDP-пакет на ваш сервер, который отправляет реальное SMS)
Обновление iOS 4
iOS 4, однако, теперь предоставляет
viewController
возможность импорта в ваше приложение. Вы предварительно заполняете поля SMS, после чего пользователь может инициировать отправку SMS внутри контроллера. В отличие от использования «SMS: ...» формат URL - адрес, это позволяет приложению оставаться открытым, и позволяет заполнять как до и тела поля. Вы даже можете указать несколько получателей.Это предотвращает автоматическую отправку 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 только в том случае, если устройство не поддерживает его.
источник
Вот учебник , который делает именно то , что вы ищете:
MFMessageComposeViewController
.http://blog.mugunthkumar.com/coding/iphone-tutorial-how-to-send-in-app-sms/
По существу:
И ссылка на документы.
https://developer.apple.com/documentation/messageui/mfmessagecomposeviewcontroller
источник
MFMessageComposeViewController *controller = ...
внутрь блока if. (метод класса не должен иметь экземпляр для выполнения теста)http://blog.mugunthkumar.com/coding/iphone-tutorial-how-to-send-in-app-sms/
говорит "502 Bad Gateway" на моем ноутбуке. Возможно, ссылка не работает.#import <MessageUI/MessageUI.h>
в свой заголовочный файлMFMessageComposeViewControllerDelegate
иUINavigationControllerDelegate
IBAction
методе объявите экземплярMFMessageComposeViewController
скажемmessageInstance
[MFMessageComposeViewController canSendText]
в условии if, оно вернет Да / НетВ
if
состоянии сделать это:Сначала установите тело для вас
messageInstance
как:Затем определите получателей сообщения как:
Установите делегата для вашего messageInstance как:
В последней строке сделайте это:
источник
presentModalViewController:animated:
устарело; используйтеpresentViewController:animated:completion:
вместо. Кроме того, не забудьте определить метод делегата,- (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result
если вы хотите знать результаты.Вы можете использовать
sms:[target phone number]
URL, чтобы открыть приложение SMS, но нет никаких указаний о том, как предварительно заполнить текст SMS текстом.источник
Одной из систем межпроцессного взаимодействия в MacOS является XPC. Этот системный уровень был разработан для межпроцессного взаимодействия, основанного на передаче структур plist с использованием libSystem и launchd. Фактически это интерфейс, который позволяет управлять процессами посредством обмена такими структурами, как словари. Благодаря наследственности, iOS 5 также обладает этим механизмом.
Возможно, вы уже поняли, что я имею в виду под этим введением. Да, в iOS есть системные сервисы, которые включают инструменты для связи XPC. И я хочу привести в пример работу с демоном для отправки смс. Однако следует отметить, что эта возможность исправлена в iOS 6, но актуальна для iOS 5.0—5.1.1. Джейлбрейк, Private Framework и другие нелегальные инструменты не требуются для его эксплуатации. Необходим только набор заголовочных файлов из каталога / usr / include / xpc / *.
Одним из элементов отправки SMS в iOS является системный сервис com.apple.chatkit, в задачи которого входит генерация, управление и отправка коротких текстовых сообщений. Для простоты управления он имеет общедоступный порт связи com.apple.chatkit.clientcomposeserver.xpc. Используя подсистему XPC, вы можете создавать и отправлять сообщения без согласия пользователя.
Что ж, давайте попробуем создать соединение.
Теперь у нас в XPC-соединении myConnection установлена услуга отправки SMS. Однако конфигурация XPC предусматривает создание приостановленных соединений - нам нужно сделать еще один шаг для активации.
Соединение активировано. В этот момент iOS 6 отобразит в телефонном журнале сообщение о том, что этот тип связи запрещен. Теперь нам нужно создать словарь, аналогичный xpc_dictionary, с данными, необходимыми для отправки сообщения.
Осталось немного: отправьте сообщение на порт XPC и убедитесь, что оно доставлено.
Это все. СМС отправлено.
источник
Добавьте MessageUI.Framework и используйте следующий код
А потом:
и метод делегата -
источник
Вы можете использовать этот подход:
iOS автоматически перейдет от вашего приложения к странице создания сообщений приложения сообщений. Поскольку схема URL начинается с sms:, это определяется как тип, который распознается приложением сообщений и запускает его.
источник
источник
Следуйте этой процедуре
1 .Добавить
MessageUI.Framework
в проект2 Импортировать
#import <MessageUI/MessageUI.h>
в .h файл.3 Скопируйте этот код для отправки сообщения
4 Реализуйте
delegate
метод, если хотите.Беги И ИДТИ!
источник
[self dismissViewControllerAnimated:YES completion:nil];
внутриmessageComposeViewController: didFinishWithResult:
метода обратного вызова. Иначе оно просто будет висеть там.Вот Swift-версия кода для отправки SMS в iOS. Обратите внимание, что это работает только в реальных устройствах. Код протестирован в iOS 7+. Вы можете прочитать больше здесь .
1) Создайте новый класс, который наследует MFMessageComposeViewControllerDelegate и NSObject:
2) Как использовать этот класс:
источник
В iOS 4 есть класс, который поддерживает отправку сообщений с телом и получателями из вашего приложения. Это работает так же, как отправка почты. Вы можете найти документацию здесь: текст ссылки
источник
источник
// вызов метода с именем и номером.
}
// Метод отправки сообщения
источник
Если вы хотите, вы можете использовать частный фреймворк,
CoreTelephony
который называетсяCTMessageCenter
класс. Есть несколько способов отправить смс.источник
Использовать этот:
источник
Это был бы лучший и короткий способ сделать это.
источник
Вы можете представить MFMessageComposeViewController, который может отправлять SMS, но с приглашением пользователя (он нажимает кнопку отправки). Нет способа сделать это без разрешения пользователя. На iOS 11 вы можете сделать расширение, которое может быть как фильтр для входящих сообщений, сообщая iOS либо о спаме, либо нет. С SMS ничего больше не поделаешь
источник
Вам нужно использовать MFMessageComposeViewController если вы хотите показать создание и отправку сообщения в вашем собственном приложении.
В противном случае вы можете использовать метод sharedApplication .
источник