#objective-c #ios10 #imessage
#objective-c #ios10 #imessage
Вопрос:
Перенаправить сообщение пользователя на сервер, а затем отправить сообщение iMessage с сервера. Возможно ли это?
Ответ №1:
Извините, но нет, это невозможно. Причина в том, что вы не можете получить доступ к сообщениям, когда они находятся в разговоре. Точнее :
- Сообщения, которые не были созданы вашим приложением, просто недоступны.
- Сообщения, созданные вашим приложением, могут быть доступны, когда: ваше приложение открыто и получено сообщение, отправленное с вашим приложением другим пользователем, или пользователь выбирает одно из сообщений, отправленных через ваше приложение.
Кроме того, ваше приложение для сообщений не сможет автоматически отправлять сообщения, пользователю всегда придется нажимать синюю кнопку «отправить».
Итак, какое приложение вы хотите разработать, на мой взгляд, невозможно :/
РЕДАКТИРОВАТЬ : посмотрите здесь для получения дополнительных разъяснений: https://developer.apple.com/reference/messages/msmessage
И, точнее, эта часть :
Устройство iOS с установленным приложением iMessage.
Если расширение не запущено, система запускает его, используя стиль представления init (session:). Для свойства selectedMessage диалога устанавливается значение прослушиваемого сообщения, и вызываются методы willBecomeActive (с помощью:) и didBecomeActive(с помощью:) контроллера представления.
Если расширение запущено, система вызывает метод willSelect(:conversation:) контроллера просмотра. Затем он обновляет свойство selectedMessage для диалога и вызывает метод didSelect(:conversation:) контроллера представления.
Переопределить willSelect(:conversation:) или didSelect(:conversation:) для ответа на выбор пользователем нового сообщения.
Вы также можете сохранять сообщения в файловой системе и обрабатывать их позже.
Комментарии:
1. «Сообщения, созданные вашим приложением, могут быть доступны, когда: ваше приложение открыто и получено сообщение, отправленное с вашим приложением другим пользователем, или пользователь выбирает одно из сообщений, отправленных через ваше приложение». Можете ли вы это объяснить?
2. Да, конечно. — Когда пользователь использует ваше приложение iMessage,
didReceive(MSMessage, conversation: MSConversation)
оно автоматически запускается при получении сообщения iMessage (которое было отправлено через ваше приложение, если оно исходит из другого приложения iMessage или является простым сообщением, ничего не произойдет). В этот момент вы сможете получить доступ / прочитать сообщение. — Наконец, если пользователь нажмет на одно из предыдущих сообщений iMessage, которые были отправлены с вашим приложением iMessage, откроется ваше приложение iMessage, а затем сработаетwillSelect(MSMessage, conversation: MSConversation)