Wenn ich sowohl eine native App als auch eine progressive Web - App mit Web - Push - Benachrichtigungen von Service Worker verwende, kann ich verhindern, dass ein Benutzer doppelte Benachrichtigungen erhält, wenn er Benachrichtigungen von der Website empfängt und über die App installiert?Wie du Benachrichtigungen zwischen nativer und progressiver Web-App duplizierst?
Antwort
Kurz gesagt - es gibt keinen einfachen Weg, dies heute zu tun.
Es ist eine Diskussion über Chrome hier dazu: https://code.google.com/p/chromium/issues/detail?id=402223
Der letzte Kommentar ab Oktober 2015:
Vorerst ist die sicherste Minimallösung für Websites eine einfache Opt-out-Mechanismus zu schaffen (Wir empfehlen Ihnen dringend, dies zu tun!) so Benutzer können Benachrichtigungen von einer Plattform aus deaktivieren
Eine andere mögliche Heuristik basierte Lösung ist, ein Maß fürzu nehmenwelche Schnittstelle (Web oder nativ) der Benutzer am häufigsten verwendet (oder die meisten vor kurzem verwendet) und nur an diese sendet. Kombiniert mit der Gruppierung dieser Geräte durch grobe Bildschirmgröße sollte eine ziemlich gute Annäherung geben.
Das Problem ist, dass, wenn der Benutzer zwei ähnlich große Geräte und verwendet nativ auf einem Web auf der anderen Seite, dann werden Benachrichtigungen nur einem geliefert werden, die eine Kante Fall ist.
Wir haben auch eine API Diskussion habe den Aufbau so können Websites sagen, ob ihre entsprechenden nativen App, diesen Fall zu vermeiden installiert ist, aber starten müssen mit anderen Browser-Hersteller zu diskutieren, dass zu sehen, ob sie unterstützend sein würde .
Beachten Sie, dass es in diesem Problem ein kleines Update gibt, das einige zusätzliche Techniken beschreibt, die verwendet werden können. – owencm