показывать пользовательские уведомления на моем веб-сайте, если пользователь посещает его, и отображать push-уведомления, только если пользователь не фокусирует внимание на вкладке моего веб-сайта. - PullRequest
0 голосов
/ 20 октября 2019

Я хочу показать push-уведомления , если пользователь не фокусирует внимание на моем веб-сайте, и если пользователь фокусирует внимание на вкладке моего сайта, я хочу, чтобы мой внутренний сайт настраивал уведомления и не давал push-уведомлениям выскакивать и отвлекать пользователей. ,это выполнимо на угловой 8? я имею в виду так же, как push-уведомления мобильных приложений, я хочу что-то вроде переднего плана и фона, которые я показываю фоновые уведомления, но я показываю уведомления переднего плана в моем приложении. Я использую угловой сервис 8 push-уведомлений и узел js. я хочу знать, если это возможно, я использую push-уведомления, а не просто использовать пользовательские уведомления внутреннего сайта.

1 Ответ

0 голосов
/ 21 октября 2019

Да, это возможно.

В прослушивателе событий push в вашем скрипте Service Worker вы можете получить всех клиентов этого Service Worker, вызвав self.clients.matchAll(), который возвращает обещание, которое разрешится с помощьюмассив клиентских объектов. Эти клиентские объекты можно проверить на свойство focused. Если свойство focused равно true, это означает, что браузер имеет фокус на вкладке.

Затем, в зависимости от того, какого типа клиентов вы получаете, вы можете как-то изменить уведомление или полностью отменить его. То, что вы описываете, вероятно, будет означать, что в случае сфокусированного клиента вы бы вместо показа уведомления отправляли сообщение через postMessage API, а код переднего конца отображал пользовательское «уведомление» в приложении.

Пример здесь: https://serviceworke.rs/push-clients_service-worker_doc.html

...