|
PUSH технология "изнутри" в мобильном приложении | ☑ | ||
---|---|---|---|---|
0
PitNN
29.09.22
✎
17:50
|
Добрый день. Просьба знатоков разработки мобильных приложений рассказать как работает доставка push-уведомлений на устройство, например, Android.
Из того что узнал: Есть так называемый "сервер устройства". Это "firebase cloud messaging" или FCM Есть инициатор отправки уведомления. Это тот, кому известны Идентификатор приложения, ключ приложения, и идентификатор устройства на который необходимо отправить уведомление Инициатор используя API FCM отправляет уведомление на "сервер устройства", который транслирует уведомление на конкретное устройство Операционка на устройстве получив уведомление "смотрит", есть ли нужное приложение и разрешены ли приложению получение уведомлений. Если разрешения есть, то уведомление передается приложению и приложение отображает уведомление. Все ли правильно я описал и есть ли еще что-то в этом процессе? |
|||
1
H A D G E H O G s
29.09.22
✎
17:58
|
Все верно.
|
|||
2
Garykom
гуру
29.09.22
✎
18:23
|
(0) Есть множество PUSH технологий
Ты описал один из вариантов для смартфонов на андроид, с гугло-сервисами и залогиненный в учетку гугла. |
|||
3
PitNN
30.09.22
✎
09:02
|
(2) Какие есть еще варианты?
|
|||
4
PitNN
30.09.22
✎
09:04
|
Может ли операционка при получении уведомления ответить отправителю было ли показано уведомление?
|
|||
5
PitNN
30.09.22
✎
09:13
|
(1) Если приложение выгружено из памяти, будет ли показано уведомление?
|
|||
6
Gary417
30.09.22
✎
10:52
|
(2) это единственная технология с почти 99% вероятностью доставки, остальное ненадежные костыли
|
|||
7
Gary417
30.09.22
✎
10:53
|
(5) будет, ОС запустит приложение если это нужно
|
|||
8
Gary417
30.09.22
✎
10:54
|
Это хорошо и плохо одновременно, хорошо - что это работает ихорошо работает, плохо - только GMC имеет право так делать в андройде с гугловыми сервисами
|
|||
9
Gary417
30.09.22
✎
10:54
|
(8) *GMS
|
|||
10
PitNN
30.09.22
✎
13:42
|
Как можно узнать, было ли показано уведомление?
|
|||
11
Gary417
30.09.22
✎
14:44
|
(10) насколько я помню, API FCM может возвращать статус, показано-непоказано
|
|||
12
Gary417
30.09.22
✎
14:45
|
я через агрегатор делал какойто, давно правда (и не через 1С), там точно статусы были, отправлять можно было в гугл, эппл и прочий хуавей
|
|||
13
PitNN
30.09.22
✎
15:38
|
Агрегатор требует нативное приложение и добавление в него своей библиотеки, у нас же гибридное приложение со своими ограничениями. Поэтому хотелось бы узнать теорию данного вопроса
|
|||
14
ДедМорроз
02.10.22
✎
12:25
|
Уведомление,вообще-то,показывается пользователю,а после нажатия на него запускается приложение.
И опять же,в телефоне служба,которая это все выполняет постоянно лазит на сервер за сообщениями,если связь нестабильная,то ничего не доходит. Другие способы - это создание аналога этой службы,которая чего-то ждет,поэтому будет расход батареи. Но,если нужно в локальной сети WiFi уведомления,то можно использовать широковещательные сообщения udp,особенно,если у вас ТСД. |
|||
15
Chai Nic
02.10.22
✎
16:47
|
(14) В последних андроидах появилась сомнительная фича по принудительной "гибернации" сервисов, не имеющих связи с активным приложением пользователя. То есть, фоновый сервис не сможет вовремя разбудить приложение по приходу udp-пакета, потому что сервис будет приостановлен системой как бы для экономии ресурса батареи и расхода памяти. У некоторых смартфонов подобное поведение можно отключить, но у значительной части нельзя.
|
|||
16
ДедМорроз
02.10.22
✎
17:16
|
Когда включаешь экономию батареи,то и push уведомления не доходят,так что ничего удивительного.
|
|||
17
Chai Nic
03.10.22
✎
08:27
|
(16) Пуши от гуглосервисов могут доходить и при экономии батареи. Проблема в том, что на некоторых моделях смартфонов, как я уже упомянул, невозможно полностью отключить экономию батареи и расхода памяти.
|
|||
18
PitNN
03.10.22
✎
08:54
|
(17) На сколько я понимаю, пущ в первую очередь приходит в операционку, а дальше она решает, что с ним делать. У меня основной вопрос, есть ли возможность узнать, было ли показано уведомление, или, хотя бы, что уведомление получено системой? Существуют ли методы, позволяющие это отследить?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |