Avatar
Maxy_obr
Člen
Avatar
Maxy_obr:

Zdravím, snažím se zprovoznit notifikace v prohlížeči vytvořit samotnou notifikaci je celkem primitivní viz:

                 var notification = new Notification(
  "nová zpráva",
  {
    body: "Lorem ipsum",
    icon: "http://example.org/nejakaikona.png"
  }
);

Ale nevím jak vyvolat dotaz zda notifikace příjmat, myslel jsem, že to prohlížeš udělá automaticky. Ale třeba v chromu se zablokují a bez povolení (které se nezobrazí) to nefunguje. Ve fireroxu se také hláška nezobrazí ale tam zase upozornění přijdou i tak. Vím, že u ostatních vebů se ukáže ten zvoneček s hláškou o povolení. Budu rád za objasnění.

 
Odpovědět 23. května 13:03
Avatar
Taskkill
Redaktor
Avatar
Taskkill:
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

Editováno 23. května 13:22
 
Nahoru Odpovědět 23. května 13:20
Avatar
Maxy_obr
Člen
Avatar
Odpovídá na Taskkill
Maxy_obr:

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ž. :)

 
Nahoru Odpovědět 23. května 13:42
Avatar
Taskkill
Redaktor
Avatar
Odpovídá na Maxy_obr
Taskkill:

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 ...

 
Nahoru Odpovědět  +1 23. května 15:20
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.