Отправка iMessage максимально проста iOS

Я хочу иметь возможность программно отправлять iMessage без каких-либо других действий, кроме вызова функции, которая отправит текст на номер с сообщением, оба из которых являются текстовыми полями. Я был бы очень признателен за пример кода, поскольку я охотился в сети, но ничего из того, что я нашел, не поможет. Это не для коммерческого приложения, просто для меня, чтобы оно могло использовать частные фреймворки или что-то еще, что сделает эту работу. Спасибо.


person Jordan    schedule 01.06.2012    source источник
comment
Джордан, ты когда-нибудь мог это понять? Я хочу сделать то же самое, и я согласен с использованием частных API. Я знаю, что это можно сделать с помощью ChatKit.Framework, но не знаю, как это сделать.   -  person Zia    schedule 16.01.2014
comment
@user2891327 user2891327 Я дошел до отправки SMS, но не мог гарантировать, что это будет iMessage, я думаю, что рамки изменились с тех пор, и я потерял свой код. Извините, я не могу больше помочь, но удачи. Я думаю, что проблема, которую Apple пытается избежать (мое первоначальное намерение, только в образовательных целях), заключается в том, что вы можете установить таймер для рассылки спама на чей-то iPhone, по сути делающий приложение для отказа в обслуживании (DOS).   -  person Jordan    schedule 19.01.2014


Ответы (1)


Единственный способ отправить сообщение — использовать фреймворк MessageUI. Пример того, как это сделать, есть в документации iOS:

https://developer.apple.com/library/ios/#samplecode/MessageComposer/Introduction/Intro.html#//apple_ref/doc/uid/DTS40010161

Изменить: я только что заметил, что этот вопрос дублирует этот: как использовать платформу MessageUI для отправки сообщений iMessage на iPhone

Исправление: кажется, что вы можете использовать CoreTelephony для отправки сообщения:

[[CTMessageCenter sharedMessageCenter] sendSMSWithText:message serviceCenter:nil toAddress:number];

На это меня натолкнул комментарий Джордана Брауна. Я подозреваю, что это может привести к тому, что вас забанят в App Store, но я знаю, что вы сказали, что вас это не волнует.

person woz    schedule 01.06.2012
comment
Я знаю, но это невозможно. iOS не позволяет вам получить доступ к iMessage каким-либо образом, кроме как для отправки SMS-сообщений, как это делается в примере. - person woz; 01.06.2012
comment
Нет, этот вопрос другой. Мне нужен код, который просто отправит сообщение, iMessage или текст, потому что это зависит не от приложения, а от того, есть ли соединение Wi-Fi или нет. - person Jordan; 01.06.2012
comment
На самом деле это возможно. Я делал это раньше, но забыл как и потерял код. Он использовал CoreTelephony - person Jordan; 01.06.2012
comment
О, я исправляюсь. Я нашел это: theiphonewiki.com/wiki/index.php?title=CoreTelephony. Выглядит многообещающе. - person woz; 01.06.2012
comment
Я импортировал фреймворк, но как его объявить, например #include ‹›? - person Jordan; 02.06.2012
comment
Я изучаю это вместе с вами, но думаю, вам нужно использовать заголовочный файл из ответа на этот пост: stackoverflow.com/questions/9774919/ - person woz; 05.06.2012
comment
В iOS 12 я получаю сообщение об ошибке при отправке: 5. Работает ли это в версиях 12 и выше? - person Martin Berger; 10.07.2019