Diskuze: Notifikace - mobilní telefon
V předchozím kvízu, Online test znalostí JavaScript, jsme si ověřili nabyté zkušenosti z kurzu.


Zobrazeno 10 zpráv z 10.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Online test znalostí JavaScript, jsme si ověřili nabyté zkušenosti z kurzu.


Co vypisuje js konzola za chyby? Otevres ji, das F5 refresh stranky a pockas,
co to vypise.
FF - nastroje - vyvoj webu - webova konzola
ctrl+ shift + k
Do toho sveho kodu pridej aletry nebo nejake zobrazovani, abys vedel, jaka funkce se jeste spustila.
function notifyMe(msg) {
alert(1)
Notification.requestPermission(function(result) {
alert(2)
if (result === 'granted') {
navigator.serviceWorker.ready.then(function(registration) {
alert(3)
registration.showNotification(msg);
});
}
});
}
notifyMe funguje jenom, kdyz ji spustis. Jak ji spoustis? Pres nejaky request zjistujes prichozi zpravy?
Konzole nevypisuje za chyby nic 
Teď pro nejjednodušší testování při načtení stránky, ale jinak by to měla zavolat jiná funkce která se stará o ten celkový proces, který funguje. Šáhá si ajaxově opakovaně na server a když zjistí že je něco nového dojde k aktualizaci dat a v tento moment by měla vyběhnout notifikace. Samozřejmě ve spuštění nějaké akce není problém, problém je že potřebuji tuto funkcionalitu, nebo něco podobného co uživatele upozorní.
A result vrací "granted", problém je tedy v
navigator.serviceWorker.ready.then(function(registration) {
console.log(4)
registration.showNotification(msg);
});
Peter moc ti děkuji i když si mě jen popostrčil, ale pomohl jsi. Tvé odpovědi mi podstrčili některé myšlenky, které jsem opomenul a nebyl si vůbec jistý zda je to správný směr. Nechal jsem se inspirovat i tím co jsem dříve našel a teď to složil.
Soubor sw.js neobsahuje vůbec nic, nerad bych psal nějakou kravinu kdybych to špatně pochopil, protože jsem to zas tak moc nestudoval. Každopádně, když to tam je tak to funguje (Mělo by si to sáhnout na server a ověřit protokol jen, ale nemusí to být úplně správné sdělení)
Nemám tam využití proměnné msg, místo toho jsem vložil ručně text a jen to při volání definoval (To jen pro vysvětlení)
function notifyMe(msg) {
Notification.requestPermission(function(result) {
if (result === 'granted') {
navigator.serviceWorker.register('/js/sw.js').then(function(registration) {
// Registration was successful
registration.showNotification("tohle je notifikace");
}, function(err) {
// registration failed :(
console.log('ServiceWorker registration failed: ', err);
});
}
});
}
Njn, takze uz ti to funguje?
Ja tyhle kaskady funkci moc nemusim. Neni to prehledne a zanasi to zmatek pri editaci.
function notifyMe(msg) {
Notification.requestPermission(function(result) {
if (result === 'granted') {
navigator.serviceWorker.register('/js/sw.js').then(function(registration) {
// Registration was successful
registration.showNotification("tohle je notifikace");
}, function(err) {
// registration failed :(
console.log('ServiceWorker registration failed: ', err);
});
}
});
}
--- takhle zapsane by to mohlo taky fungovat ---
var xxx = {};
xxx.cbRegisterSuccess = function (fn_registration)
{
fn_registration.showNotification("tohle je notifikace");
}
xxx.cbRegisterError = function (err)
{
console.log('ServiceWorker registration failed: ', err);
}
xxx.cbPermission = function (result)
{
if (result === 'granted')
{
navigator.serviceWorker
.register('/js/sw.js')
.then(xxx.cbRegisterSuccess, xxx.cbRegisterError);
}
}
function notifyMe(msg)
{
Notification.requestPermission(xxx.cbPermission);
}
Tusim jsem resil RTC komunikaci a tam byl stejny problem. Funkce mela
preddefinovane, ze musi dostat 2 (nebo 3, nevzpomenu si) parametry, kde ten
posledni byl prave error funkce. Pokud se zadala jen success funkce, tak to
nevypsalo ani error a ani to nefungovalo. Uzasne, fakt
Proto je lepsi si zplacat ten kod
sam a osetrit existenci pres typeof.
Ten můj kod již funguje a mám to již vložené do celé aplikace, takže
super. Ale mně se rozhodně více líbí ten můj příklad
Ale určitě děkuji.
Njn, ja ti ho neberu. Jen pouzivam radeji jiny zpusob, kde pak vim, kolik funkci je vlastne do sebe zanorenych a na co ktera reaguje..
Zobrazeno 10 zpráv z 10.