Diskuze: Notifikace - mobilní telefon
V předchozím kvízu, Online test znalostí JavaScript, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 10 zpráv z 10.
//= 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.
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.