Есть ли какой способ писать уведомления в приложение?
Задача такая: хочу писать откуда-то (неважно) сообщение и чтобы оно показывалось всем у кого установлено приложение.
Ответы (1 шт):
Обычно такого рода задачу решают через PushMessages. Обычно используют решение от злобного монополиста гугла - FirebaseCloudMessages (FCM).
Однако, такое решение не будет работать, например, на девайсах без гугло-сервисов. Например на Huawei девайсах, вышедших после санкций сша. Однако, Huawei предоставляет полный аналог FCM - PushKit - можно использовать его вместо FCM.
У Apple также своя собственная реализация этих пушей.
Все они работают в целом одинаково - системное приложение держит постоянное соединение с поставщиком услуги пушей (Huawei, гугл, apple) и как только пуш был откуда-то послан - выводит его на девайсе так или иначе.
Если же не завязываться на сторонние сервисы то есть 2 пути:
- Сделать аналог того, что делают Huawei, гугл, apple - держать постоянное сокет-соединение с сервером. Однако в большинстве ОС новых версий это сильно не приветствуется и очень ограниченно позволено. Например на Android надо держать в шторке неубиваемое уведомление, чтобы соединение поддерживалось в т.ч. и когда приложение не запущено (свернуто, например). Такое подойдёт для редких случаев, например для приложения для водителей агрегатора такси. Для приложения заказа такси такое уже не прокатит - юзер его просто удалит, чтобы убрать уведомление.
- Через системные API периодически дёргать свой сервер, узнавая от него есть ли новые сообщения. Если есть - выводить их так или иначе. Тут будут наложены всякие ограничения типа энергосберегающих режимов и прочего, что не позволит сообщение получить прямо в момент отправления, зато не раздражает юзера и не завязано на сторонние решения, в т.ч. от злобных монополий типа гугла.