24.10.2019

Obě hlavní mobilní platformy, tedy Android i iOS, podporují posílání zpráv z backendu do mobilního zařízení formou push notifikace. V 99% případů se jedná o jedinou správnou cestu, jak aplikaci ze serveru poslat nějaká data – spolehlivé a rychlé push notifikace optimalizované na spotřebu baterie.

Jediná možnost jak push notifikaci do telefonu poslat je přes servery Apple a Google. Existují i jiné služby, ale ty vždy staví nad touto existující infrastrukturou.

Tento článek se věnuje pouze službě Firebase Cloud Messaging, která je vlastněná Googlem. Je tedy nativním řešením pro Android platformu a zároveň podporuje i posílání notifikaci na zařízení s iOS a i na této platformě ušetří spoustu práce.

Pojďme se podívat jak to celé funguje:

Notifikační zprávy – spolehlivé doručení notifikace pro iOS

Zobrazují se přímo v notifikačním centru na obou platformách a aplikace nemá možnost na ně reagovat dokud nedojde ke kliku na notifikaci v notifikačním centru.

Používáme na iOS, kde se jedná o jediný spolehlivý způsob doručení notifikace.

Nepoužíváme na Androidu, kde je daleko lepší poslat datovou zprávu a na základě ní zobrazit uživateli notifikaci.

Datové zprávy – Android notifikace pod kontrolou

Jde o zprávy zpracovávané aplikací na pozadí, bez zobrazení notifikace v notifikačním centru. Aplikace může notifikaci během zpracování zobrazit do notifikačního centra.

Na Androidu používáme jak k posílání notifikací, které chceme zobrazit, tak notifikací pro spuštění procesů na pozadí. K doručení tu dochází okamžitě a spolehlivě a tato cesta umožňuje aplikačnímu vývojáři mít nad notifikacemi plnou kontrolu.

Na iOS používáme pouze pro spuštění časově nekritických procesů na pozadí, například synchronizace dat na pozadí. Je nutné počítat s tím, že kvůli optimalizaci baterie tyto notifikace mohou dorazit až za dlouhou dobu, běžné také je, že nedorazí vůbec.

Datové a notifikační zprávy jdou také kombinovat, ale to už je mimo rozsah tohoto článku.

Bez registrace zařízení to nepůjde

Než bude možné posílat notifikace na zařízení, musí se nejprve zaregistrovat na Firebase Cloud Messaging serverech. Tuto registraci může udělat při prvním startu aplikace, nebo kdykoliv později. Na iOS musí navíc uživatel povolit přijímání notifikací.

Na základě registrace dostane zařízení unikátní token, pomocí kterého lze na toto zařízení cílit ze serveru notifikace. Je tedy třeba mít na serveru endpoint, kterému se tento token předá. Token se může v čase měnit a je tedy třeba podporovat i jeho aktualizaci.

Jak poslat push notifikaci ze serveru

Notifikace se odešle pomocí POST requestu na URL ve tvaru:

https://fcm.googleapis.com/v1/projects/{firebase_project_id}/messages:send

Kde {firebase_project_id} je identifikátor Firebase projektu, který najdete v nastavení projektu. Obvykle je ve tvaru ‘nazev-vaseho-firebase-projektu’.

Pro Android a iOS je potřeba odeslat trochu jiné JSON zprávy, následuje jejich popis. Kompletní dokumentace zde:

iOS

Android


Chceš víc?

Chtěl bys číst více článků nebo se rovnou stát součastí tímu?

Pokud chceš nahlédnout pod pokličku, sdílej s námi svůj mail.  Chci víc

Nakoukni k nám!

Jak hledáme vývojáře do našeho týmu? Vláďa to prozradil v jedné z jeho přednášek pro xPORT VŠE Business Accelerator!

Vladislav Skoumal
SKOUMAL CEO