2017-08-14 2 views
0

Ich implementierte Push-Benachrichtigung mit Service Worker. Ich speichere die Endpunkte in meiner Datenbank. Wie kann ich den alten Abonnementeintrag aus db löschen, wenn sich das aktuelle Abonnement ändert/abläuft? "pushsubscriptionchange" -Ereignis Ich höre im Service-Mitarbeiter. Es wird jedoch nicht ausgelöst, wenn ich die Benachrichtigungssubskription in Chrome-Einstellungen auf "Immer auf dieser Site blockieren" geändert habe. Irgendeine Hilfe?Löschen abgelaufener Push-Subskriptions-Endpunkte von db, die über Service Worker erstellt wurde

Antwort

1

Ich glaube nicht, dass das Entzug von Benachrichtigungsrechten über Standorteinstellungen jemals das Ereignis pushsubscriptionchange beim Service-Mitarbeiter auslösen wird.

Stattdessen denke ich, was Sie tun könnten, ist eine Ablehnung der registration.pushManager.subscribe() Methode von Ihren Client-Seiten zu erkennen. Gemäß Schritt 9 von the specification für subscribe(),

Wenn nicht gewährt, ablehnen versprechen mit einem DOMException, dessen Name „NotAllowedError“ und diese Schritte beenden.

Also ich denke, das ist, was Sie in der Lage sein würden, in dem Szenario zu erkennen, das Sie beschreiben.

Wie für die Abonnement-Endpunkte in diesem Szenario zu bereinigen, würde ich sagen, dass Sie alle aufräumen sollten? Der Benutzer hat die Benachrichtigungen deaktiviert. Daher glaube ich nicht, dass einer der vorhandenen Endpunkte weiter verwendet werden würde.

Verwandte Themen