Ben API çağrısına parametre olarak göndermek için krom kayıt id gerek, bu yüzden kayıt id karşılık gelen mesajı getirebilir. şöyle Benim kodudur:üzerinde 'waituntil' yürütülemedi 'ExtendableEvent'
self.addEventListener('push', function(event) {
var apiPath = 'http://localhost/api/v1/notification/getNotification?regId=';
event.waitUntil(registration.pushManager.getSubscription().then(function (subscription){
apiPath = apiPath + subscription.endpoint.split("/").slice(-1);
event.waitUntil(fetch(apiPath).then(function(response){
if(response.status !== 200){
console.log("Problem Occurred:"+response.status);
throw new Error();
}
return response.json().then(function(data){
var title = data.title;
var message = data.body;
var icon = data.icon;
var tag = data.tag;
var url = data.url;
return self.registration.showNotification(title,{
body: message,
icon: icon,
tag: tag,
data: url
});
})
}).catch(function(err){
var title = 'Notification';
var message = 'You have new notifications';
return self.registration.showNotification(title,{
body: message,
icon: '/images/Logo.png',
tag: 'Demo',
data: 'http://www.google.com/'
});
})
)
}));
return;
});
Yukarıdaki kod ile alıyorum hatadır: (sözden)
Yakalanmayan DOMException:
üzerine 'waituntil' yürütülemedi 'ExtendableEvent': olay işleyicisi zaten bitti (...) 'site arka planda güncellendi' ekstra bildirim ile birlikte.. Şimdi
fetch(apiPath)
bölümünden önceevent.waitUntil
kaldırmak bile, hala fazladan bildirim olduğunu alıyorum.
beni bu bir çözüm bulmak yardımcı olun.
P.S.: does'nt Chrome Push Notification: This site has been updated in the background de soru benim durumumda herhangi bir kullanım olduğu görülüyor.
Ben sadece söz nesnesi döndü ve onunla event.waitUntil' 'değiştirilir iş yani yaptığımız' – doubt
return' Evet, gerçekten. Sadece benim için okumayı kolaylaştırmak için girintiyi biraz değiştirdim, ama bu da bu. – Marco