2016-04-07 10 views
0

Ich möchte nicht nur Pushs mit Nachrichten senden (via Fetch), sondern manchmal auch unsichtbare Push (dh keine Benachrichtigung überhaupt) nur um zu überprüfen, wie viele Benutzer noch abonniert und wie schnell sie erhalten ein Stoß.Chrome Push-Benachrichtigungen: senden unsichtbaren Push

Ich habe diesen Code versucht. Es scheint zu funktionieren, aber auf einigen Geräten bekomme ich "Diese Seite wurde im Hintergrund aktualisiert" Nachricht, die verwirrend ist.

self.addEventListener('push', function(event) { 
    event.waitUntil(
     fetch(my_awesome_url) 
     .then(function(response) { 
      if (response.status !== 200) { 
       throw new Error('Server code: ' + response.status); 
      } 

      return response.json().then(function(data) { 
       if (typeof data.data !== 'object') return; // invisible push, show nothing 
       var notificationData = { 
        body: data.content, 
        data: data.data, 
        tag: data.id || Math.random(), 
        icon: typeof data.data == 'object' ? data.data.image : '' 
       }; 

       return self.registration.showNotification(data.title, notificationData); 
      }); 
     }) 
     .catch(function (err) { 
     }) 
    ); 
}); 

Wie kann ich den Browser tatsächlich davon abhalten, etwas anzuzeigen?

Antwort

1

Sie können nicht.

In Ihrem Client-Seite Code, den Sie die folgende Zeile schreiben hätten:

subscribe({userVisibleOnly: true}); 

Dies liegt daran, dass Browser nur Unterstützung von Push-Benachrichtigungen, wenn Sie eine Meldung anzeigen.

Versuchen Sie nicht, eine Nachricht zu senden, bis Sie müssen, und fangen Sie dann Fehlerantworten für fehlerhafte Abonnements ab.

Es gibt eine große Antwort auf diese Frage mit mehr Einzelheiten hier: Google Chrome Silent Push Notifications

+2

Firefox Senden erlaubt * einige * Mitteilungen, die nicht einen Benutzer sichtbaren Effekt haben es hat einige Heuristiken Stellen zu vermeiden, die Funktion missbrauchen. Sie können hier einige Experimente ausführen: https://serviceworke.rs/push-quota.html. – Marco

Verwandte Themen