2

我实现了网络推送通知。获取错误的步骤:

  1. 打开网站
  2. 订阅推送通知
  3. 通过 gcm 发送许多推送 - 一切都很好
  4. 关闭带有站点的选项卡
  5. 发送推送和接收“双推”-第一个可以,第二个是“本站已在后台更新”
  6. 重新打开网站
  7. 发送推送 - 一切都好

我知道当服务人员收到推送并且不显示通知时会发生这种情况。但是我看到正常通知,为什么我还看到其他奇怪的通知?我可以摆脱这种行为吗?

4

1 回答 1

6
self.addEventListener('push', function(event) {
  // this function should return promise always
}

就我而言:

self.addEventListener('push', function(event) {
  event.waitUntil(
    self.registration.pushManager.getSubscription()
      .then(function(subscription) {
        fetch('url')
          .then(function(response) {
            self.registration.showNotification('title', {});
          });
      });
  );
}

应该:

self.addEventListener('push', function(event) {
  event.waitUntil(
    self.registration.pushManager.getSubscription()
      .then(function(subscription) {
        return fetch('url')
          .then(function(response) {
            return self.registration.showNotification('title', {});
          });
      });
  );
}
于 2015-10-17T14:02:48.990 回答