Ich habe Push-Benachrichtigungen mit Service-Mitarbeitern implementiert. Gibt es eine Möglichkeit, die Anzahl der Benachrichtigungen zu ermitteln, die derzeit im Fenster angezeigt werden? Ich beabsichtige, die Anzahl der im Fenster angezeigten Benachrichtigungen zu begrenzen.Ermitteln der Anzahl aktiver Push-Benachrichtigungen von Service-Mitarbeitern
Ich habe Folgendes versucht. Aber die Funktion getNotifications gibt mir ein leeres Array zurück.
self.addEventListener('push', function(event) {
if (!(self.Notification && self.Notification.permission === 'granted')) {
return;
}
var data = event.data.json();
var options = {
body: data.notificationText,
icon: 'files/assets/staff.png',
vibrate: [100, 50, 100],
data: {
dateOfArrival: Date.now(),
onClickUrl: data.onClickUrl,
event_id: data.event_id,
productName: data.product_name
}
};
event.waitUntil(
self.registration.getNotifications().then(function(notifications) {
console.log(notifications);
if (notifications && notifications.length > 0) {
notifications.forEach(function(notification) {
notification.close();
});
}
showNotification(data.title, options);
})
);
});
Die Zahl 0, Ereignis, wenn es Meldungen, die den Benutzer angezeigt werden. self.addEventListener ('push', Funktion (e) { var data = e.data.json(); var Optionen = { body: data.notificationText, Symbol: 'files/assets/staff.png', Daten:. { dateOfArrival: Date.now() } }; e.waitUntil ( self.registration.getNotifications(), dann (function (Mitteilungen) { console.log (notifications.length); Selbst .registration.showNotification (data.title, options) }) ); }); – Stanly
Vor dem Aufruf von showotification möchte ich wissen, ob es Benachrichtigungen gibt, die bereits angezeigt werden. – Stanly
Beachten Sie, dass getNotifications() nur Benachrichtigungen vom Serviceworker zurückgibt und Benachrichtigungen von anderen Apps nicht gezählt werden – jedijulia