Я занимаюсь разработкой уведомлений с использованием API Pu sh для сервисных работников. В настоящее время я делаю что-то вроде этого, чтобы отображать уведомление только в том случае, если пользователь еще не вошел на сайт:
self.addEventListener('push', function(event) {
event.waitUntil(clients.matchAll().then(function(clientList) {
for (let i = 0; i < clientList.length; i++) {
if (clientList[i].visibilityState === "visible") { // if any window is visible, don't send a notification
return;
}
}
event.waitUntil(self.registration.showNotification("Notification"));
})
}
Это работает нормально, за исключением того факта, что если пользователь вкладывается в мой сайт, но с вкладками из браузера, то это не работает. Я составлю таблицу:
user is tabbed into site notification not sent CORRECT
user is not tabbed into site notification is sent CORRECT
user is not tabbed into site or browser notification is sent CORRECT
user is tabbed into site but tabbed out of browser notification not sent INCORRECT
Можно ли исправить последний случай? Я хочу отправить уведомление в этом случае.