7

pushsubscriptionchange当推送通知服务器希望客户端重新订阅时,浏览器会触发该事件。如何手动触发此事件进行测试?

4

2 回答 2

5

不幸的是,无法对此功能进行任何端到端测试。您可以做的最好的事情是通过服务工作者的 JS 触发事件:

function triggerSubscriptionChange() {
  registration.pushManager.getSubscription().then(subscription => {
    if (subscription) {
      console.log("subscribed, subscription", subscription);
      return subscription.unsubscribe();
    }
  }).then(() => {
    console.log("unsubscribed");
    return registration.pushManager.subscribe({
      userVisibleOnly: true
    });
  }).then(subscription => {
    console.log("subscribed, subscription", subscription);
    self.dispatchEvent(new ExtendableEvent("pushsubscriptionchange"));
  });
}
于 2016-04-13T14:51:32.707 回答
5

当用户删除并重新授予推送权限时也会触发该事件(请参阅https://github.com/w3c/push-api/issues/116)。

例如,在 Firefox 中,您可以单击站点标识图标,在“权限”部分中,为“接收通知”选择“阻止”,然后选择“允许”。

pushsubscriptionchange将触发一个事件。

pushsubscriptionchange 事件

于 2016-04-13T17:48:46.927 回答