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?
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