禁用通用浏览器推送通知的显示

时间:2016-03-01 11:42:22

标签: javascript google-chrome notifications push-notification google-cloud-messaging

我已经实现了浏览器推送通知功能,并且工作正常。我使用本指南作为参考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;
            }
          });
        })
        );
    });

0 个答案:

没有答案