Diskuze: Notifikace v prohlížeči
V předchozím kvízu, Online test znalostí JavaScript, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 4 zpráv z 4.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí JavaScript, jsme si ověřili nabyté zkušenosti z kurzu.
Notification.requestPermission();
To mas tak ... spravne by to melo byt implementovany tak, ze dokud nemas persmisson, tak se ti nic nezobrazi ... jestli pri pokusu zobrazit notif bez permisnu ti browser zobrazi nejdriv ten pozadavek, nebo ti to forbidne .... asi zalezi na implementaci browseru ...jak je to ve specifikaci po pravde nevim... kazdopadne ... ta metoda requestPermission() bere i funkci jako parametr, ve ktery muzes treba tu notifikaci vytvorit ... samozrejme nemusis ... a muzes si o ten permission jen rict...
s notifikacema je to ale jeste komplikovanejsi ... to jednoduche API, ktere je opravdu dost jednoduche, je momentalne implementovane radou browseru... tady ale je ta komplikace... implementuje ho pokud vim firefox (castecne) ... respektuje specifikaci a dodrzuje ji... ve Chromu (rozsahla podpora, kdyz na to prijde) si rekli, ze sice nekde v nekterych verzich budou implementovat, ale v jinych verzich uz ne, protoze radsi slouci tohle a ty druhy notifikace (ty na pozadi ze serveru pomoci workeru) je to od nich docela podraz, v nekterych verzich mobilniho chromu uz tohle nefunguje ... coz je fakt protivny ... existuje rada knihoven, co ti osetri notifikace vsude, jak to jen pujde, ale nezkousel jsem zadnou do hloubky...
pripravuju clanek a mozna i nejakej navod, jak si takovouhle miniknihovnu na notifikace napsat... mozna jen samotnou knihovnicku ...jeste nevim ... tobe uz tim asi nepomuzu, ale doufam, ze moje odpoved alespon castecne pokryla tvoje otazky
edit: jeste jsem chtel dodat, ze kazdej browser si to implementuje trochu po svem...treba cas zobrazeni notifu a tak
Chápu to tedy správně, že by stačilo toto
Notification.requestPermission();
var notification = new Notification(
"nová zpráva",
{
body: "Lorem ipsum",
icon: "http://example.org/nejakaikona.png"
}
);
Protože to jsem zkoušel a žádná hláška nevyskočí. No tak v průběhu psaní jsem to vyřešil bylo to tím, že soubor nebyl na serveru ale jen local HTML soubor. Nechápu jaký to má vliv pokud jde o api prohlížeče ale budiž.
Dodam, ze takhle to neni spravne... takhle delas to, ze pozadas o povoleni a bez ohledu na vysledek se pokusis zobrazit notif... musis bud pozadat o permission pri nacteni stranky... a pak pri kazde notifikaci se ujistit, ze ti bylo dovoleno :
if (Notification.permission === "granted") {
// udelej notif
}
a nebo ... a to bych uprednostnoval, pokud to jde samozrejme, pozadat az tehdy, kdyz budes chtit zobrazit prvni notif ... pak muzes rovnou dat jako parametr funkci, ktera tu notifikaci zobrazi, pokud jsou povoleny ... samozrejme pak dal se to chce znova a znova ujistovat, ze jsou povoleny, nez ji zobrazis.. nebo si to ulozit do nejakyho vnitrniho stavu aplikace ... to uz je na tobe... moje poznamka zni... takhle se pokousis zobrazit notif i pokud request byl zamitnut ...
Zobrazeno 4 zpráv z 4.