Могут ли сообщения Pusher приниматься в приложении Android/iOS, когда приложение закрыто или телефон выключен
Можно ли получать сообщения Pusher в приложении Android/iOS, когда приложение закрыто или телефон выключен?
Что я ожидаю, чтобы случиться...
Когда телефон включен, а приложение включено, из документации Pusher довольно просто узнать, как реагировать на сообщения-отправители, отправленные в приложение.
Когда телефон включен и приложение закрыто, телефон должен получить уведомление о том, что что-то было отправлено в приложение.
Когда телефон выключен, телефон должен получить уведомление, когда он снова включается, чтобы уведомить, что что-то было отправлено в приложение.
Это вообще возможно? Если да, какие предложения нужно искать? Если нет, то какой может быть обходной путь?
1 ответ
Когда приложение, использующее Pusher, переходит в фоновый режим на iOS и Android, соединение с Pusher, вероятно, будет оставаться активным в течение нескольких минут. Но в конце концов это соединение будет закрыто. Вы не можете остановить это в вашем приложении (хотя при отправке в магазине приложений может быть взломано утверждение, что ваше приложение является приложением Voice).
Поэтому вы должны отслеживать перемещение вашего приложения в фоновом режиме и использовать запасной вариант для доставки сообщений на телефон, когда он не подключен.
Посмотрите, пожалуйста, Как получить события толчка, когда приложение iOS уходит в фон? для libPusher (библиотека Pusher iOS).
Вот выдержка из документации по жизненному циклу процессов и потоков Android на тему "Процесс обслуживания":
Процесс, на котором выполняется служба, которая была запущена с помощью метода startService() и не попадает ни в одну из двух более высоких категорий. Хотя сервисные процессы напрямую не связаны с тем, что видит пользователь, они, как правило, делают вещи, которые интересуют пользователя (например, воспроизведение музыки в фоновом режиме или загрузка данных в сети), поэтому система поддерживает их работу, если не хватает памяти сохранить их вместе со всеми передними и видимыми процессами.
Таким образом, запуск экземпляра Pusher в таком потоке является жизнеспособным вариантом.
Однако все равно будут случаи, когда пользователь отключается. В этой ситуации на вашем сервере вы можете определить, подключен ли пользователь к сети, запросив HTTP-API Pusher или воспользовавшись WebHooks, где ваш сервер может быть мгновенно проинформирован о том, что пользователь отключился или вернулся в онлайн.
Используя вышеупомянутые механизмы, вы можете облегчить умные уведомления; если пользователь подключен к сети (приложение находится на переднем плане), отправьте ему сообщение с помощью Pusher, если он отключен (приложение находится в фоновом режиме), а затем используйте альтернативный механизм доставки (собственное push-уведомление, SMS или электронная почта).,