我已经实现了浏览器推送通知功能,并且工作正常。我使用本指南作为参考https://developers.google.com/web/fundamentals/getting-started/push-notifications/step-01?hl=en
然而,由于仍然不支持有效负载,我决定查询我的服务器以获取每个用户的通知数据,这也是正常工作。
但是有一个问题。在某些情况下,从服务器获取数据后,我想控制是否显示通知。我无法弄清楚如何做到这一点。我尝试返回false,抛出错误等。但即使我没有调用showNotification方法,也总是显示默认通知。让我知道如何解决这个问题。以下是相关代码
self.addEventListener('push', function(event) {
event.waitUntil(
fetch('/getPushNotificationData/').then(function(response){
if (response.status !== 200) {
// I don't want to show any notification in this case
console.log('Looks like there was a problem. Status Code: ' + response.status);
throw new Error();
}
return response.json().then(function(data){
var shouldDisplay = data.shouldDisplay;
if (shouldDisplay=='1'){
var title = data.title;
var message = data.message;
var url = data.url;
return self.registration.showNotification(title, {
body: message,
data: url
});
}
else{
// I don't want to show any notification in this case also
return true;
}
});
})
);
});