Есть ли какой способ писать уведомления в приложение?

Задача такая: хочу писать откуда-то (неважно) сообщение и чтобы оно показывалось всем у кого установлено приложение.


Ответы (1 шт):

Автор решения: ЮрийСПб

Обычно такого рода задачу решают через PushMessages. Обычно используют решение от злобного монополиста гугла - FirebaseCloudMessages (FCM).

Однако, такое решение не будет работать, например, на девайсах без гугло-сервисов. Например на Huawei девайсах, вышедших после санкций сша. Однако, Huawei предоставляет полный аналог FCM - PushKit - можно использовать его вместо FCM.

У Apple также своя собственная реализация этих пушей.


Все они работают в целом одинаково - системное приложение держит постоянное соединение с поставщиком услуги пушей (Huawei, гугл, apple) и как только пуш был откуда-то послан - выводит его на девайсе так или иначе.


Если же не завязываться на сторонние сервисы то есть 2 пути:

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