Das Ereignis pushsubscriptionchange
wird vom Browser ausgelöst, wenn der Pushbenachrichtigungsserver den Client erneut abonnieren möchte. Wie kann ich dieses Ereignis manuell zum Testen auslösen?Wie kann ich pushsubscriptionchange Event-Handling-Code testen?
4
A
Antwort
3
Leider ist es nicht möglich, diese Funktion end-to-end zu testen. Das Beste, was Sie tun können, ist das Ereignis über JS aus dem Dienst Arbeiter feuert:
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"));
});
}
2
Das Ereignis wird auch ausgelöst, wenn der Benutzer entfernt und wieder gewährt die Push-Erlaubnis (siehe https://github.com/w3c/push-api/issues/116).
Zum Beispiel in Firefox können Sie auf die Website Identität Symbol klicken, in der "Berechtigung" Abschnitt, wählen Sie "Blockieren" für "Benachrichtigungen erhalten", wählen Sie dann "Zulassen".
Ein pushsubscriptionchange
Ereignis wird ausgelöst.
versucht, dieses und das Ereignis auslösen nicht ... Auch ich https://github.com/w3c/push-api/issues/116 offen –
sehen Sie arbeiten verwendet, wie Sie können, siehe von meinem Screenshot. Ich weiß nicht, ob es seitdem funktioniert hat. Sie können auch versuchen, die Website aus der Liste der Websites zu entfernen, die zum Senden von Benachrichtigungen in "Einstellungen" -> "Inhalt" berechtigt sind. – Marco
[Letzter Kommentar] (https://github.com/w3c/push-api/issues/116#issuecomment-280743159) in dieser Ausgabe sagt _it ist jetzt definiert, dass Benutzer-Agenten das pushsubscriptionchange-Ereignis auslösen können, wenn die Berechtigung widerrufen wird_ –