当推送通知服务器希望客户端重新订阅时,浏览器会触发pushsubscriptionchange
事件。如何手动触发此事件进行测试?
答案 0 :(得分:3)
不幸的是,不可能对此功能进行任何端到端测试。您可以做的最好的事情是通过服务工作者的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"));
});
}
答案 1 :(得分:3)
当用户删除并重新授予推送权限时,也会触发该事件(请参阅https://github.com/w3c/push-api/issues/116)。
例如,在Firefox中,您可以在" Permission"中点击网站标识图标。部分,选择" Block"为"接收通知",然后选择"允许"。
将触发pushsubscriptionchange
事件。