Hlavní navigace

Upozornění už vám mohou posílat i weby, dokonce i když je nemáte otevřené

23. 4. 2015
Doba čtení: 5 minut

Sdílet

S první implementací „push notifications“ přichází Google Chrome 42, a to na Androidu i v počítačích.

V minulém týdnu vyšla ostrá verze 42 prohlížeče Google Chrome a udělala významný krok na cestě k tomu, aby webové aplikace mohly soupeřit s nativními: nabízí první implementaci doručovaných oznámení (push notifications).

Webová stránka nebo aplikace může jejich prostřednictvím zpravit uživatele o něčem i tehdy, kdy není v prohlížeči otevřena a zobrazena. Ovšem jen s jeho předchozím svolením.

Novinka se týká jak Chromu na Androidu, tak na systémech „stolních“ (a také Chrome OS). V obou světech se tím odstraňuje nedostatek oproti aplikacím systému vlastním: měla‑li webová aplikace (vlastně její server) na něco upozorňovat uživatele kdykoli, dosud se to řešilo zvláštním rozšířením pro prohlížeč.

Zda určitý web nazývat nebo nenazývat „aplikací“, to je čistě otázka vnímání uživatelem. Technicky žádná hranice není.

Doručovaná oznámení jsou v počátcích

Nečekejte, že se s nimi setkáte hned — beta Chromu 42 vyšla teprve v březnu. Ale první doručování by se mohla objevit už za několik týdnů — blog Chromia oznámil, že je uvedou mobilní weby mimo jiné Facebooku, Pinterestu, eBay, dále Beyond the Rack, FanSided, Product Hunt a VICE News.

Výhledově nezůstanou oznámení výsadou Google Chromu. Mozilla cílí na implementaci Push API ve Firefoxu 40. Microsoft však zatím podporu teprve zvažuje.

Uživatelům Safari na Macu lze zasílat oznámení už od vydání systému OS X Mavericks. Webové servery mohou využít služby APN (Apple Push Notification service). Dosáhnou tak však pouze na uživatele OS X, v iOS se oznámení nezobrazí.

Oznámení z pohledu uživatele

Google vydal zatím jen stručná doporučení, kterými by se weby měly řídit, nechtějí‑li uživatele odradit a otrávit ještě dříve, než se tato funkce rozšíří. Nedejte se zmást tím, že v odkazovaném dokumentu najdete obrazovky mobilu. Doporučení platí obdobně i na počítači.

Ukázka možné implementace
Autor: Google

Ukázka možné implementace

Google nabádá, aby aplikace zobrazila uživateli nabídku k odběru teprve poté, co nějakým způsobem dostatečně projevil, že by mohl mít o odběr zájem; dále doporučuje dobře vysvětlit, co se nabízí, a nastavování odběru (včetně odhlašování) mít na webu snadno přístupné.

Google varuje, že dokonce zkoumá možnost, že by zablokoval zobrazování nabídek z těch webů, u kterých zaznamená, že uživatelé jejich nabídky k odběru převážně pomíjejí nebo odmítají, nebo že dokonce často ruší předchozí souhlas s odběrem.

Jak vypadají a jak se chovají dotazy i oznámení ve vašem Chromu, to si můžete zkusit naživo pomocí jednoduché ukázkové apky. Na oznámení lze také kliknout, a tak se přenést na URL určenou odesílatelem.

Celkově povolujete nebo zamezujete oznámení v pokročilých nastaveních Chromu. Ve výchozím nastavení vám pro každý web zobrazí dotaz ještě sám prohlížeč. Nabídky na doručování máte možnost pro kteroukoli adresu zakázat, nebo obecně zcela zakázat, nebo naopak povolit bez dodatečného dotazu od prohlížeče.

Mimo Android a Chrome OS vám zatím žádná oznámení nedojdou, pokud Chrome neběží. Budou vám doručena teprve tehdy, až si Chrome spustíte, ale jen pokud jim mezitím nevypršela časová platnost nastavená odesílajícím serverem. Ten určuje i to, zda novější oznámení mají starší nahrazovat — jako aktuálnější zpráva o tomtéž — nebo zda jsou oznámení na sobě obsahově nezávislá, a mají vám proto dojít všechna zmeškaná, kterým dosud nevypršela platnost.

Implementace na straně oznamujícího serveru

Současné řešení není dokonalou implementací Push API, jež je dosud v návrhu, tak jako i Notification API. Nadto obchází potřebu Permission API, které v Chromu 42 ještě chybí, přitom následuje hned v Chromu 43 (nyní v betě). Doručování je prozatím řešeno jinak, než jak by mělo vypadat, až bude podpora pro oznámení úplná a standardy hotovy.

Doručování z pohledu vývojáře popisuje Google na webu HTML5 Rocks: jednak potřebujete vytvořit uživatelské ovládání přihlašování nebo odhlašování odběru, jednak si na zpracování doručených oznámení musíte v kódu své webové stránky (aplikace) zaregistrovat do uživatelova prohlížeče obslužný skript (service worker).

Push API počítá s tím, že oznámení doručujete uživateli prostřednictvím serveru třetí strany, tedy doručovací služby (push service). Google implementoval pro Chrome doručování skrze službu GCM (Google Cloud Messaging). Jenže GCM zatím nepodporuje teprve chystané Web Push API; zatím se doručuje skrze GCM API, a tak musíte provést několik kroků, které časem zřejmě odpadnou, nebo se změní: ve vývojářské konzole na GCM musíte mít založený projekt, a tedy mít přiděleno jeho číslo a klíč k API, a pro svou aplikaci vytvořit manifest.

Přihlásí‑li si některý uživatel odběr oznámení, získáte tím jeho subscriptionId, vlastně jeho „doručovací adresu“ skrze GCM; konkrétní odběr je určen spárováním s endpoint, což je URL na GCM, kam budete oznámení zasílat ze svého serveru.

Obojí údaje musíte udržovat ve vlastní databázi a tu aktualizovat podle toho, jakých odpovědí se vám dostává od GCM i v obslužném skriptu na straně uživatele.

Od zamýšlené konečné implementace se tato předběžná liší i v tom, že v oznámení nelze poslat žádná data. Ta teprve musíte vyzvednout obslužným skriptem ze svého serveru. Posílání dat spolu s oznámením je totiž chystaným Push API podmíněno tím, že data se budou posílat zašifrovaně, ale Chrome 42 to tak ještě neumí.

Doručení prozatím vždy musí zobrazit oznámení uživateli. Nelze mu něco podsouvat na pozadí. O možnosti „tiché synchronizace“ se teprve diskutuje a uvažuje.

UX DAy - tip 2

Co s doručováním provede obecný web?

Možnost zobrazovat uživateli upozornění a oznámení je pro některé webové aplikace zásadní, a až Google dopracuje také to, abyste ani na počítači nemuseli mít kvůli tomu Chrome viditelně spuštěn, setře se jeden citelný rozdíl oproti aplikacím pro Windows (nebo pro Mac či Linux).

Táž funkce se však nabízí i obecnému webu — projektům malým jako velkým. Budou s ní zacházet nápaditě, ale rozumně, nebo spíše nezodpovědně? Anebo zůstanou oznámení jen na okraji zájmu? To uvidíme spíše tak za rok nebo za dva.

Byl pro vás článek přínosný?

Upozorníme vás na články, které by vám neměly uniknout (maximálně 2x týdně).