Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Web push notification (https://javascript.ru/forum/events/71970-web-push-notification.html)

ArtemSnovyda 26.12.2017 06:07

Web push notification
 
Здравствуйте!
Реализовал пуш-уведомления по этой статье https://habrahabr.ru/post/321924/
Все работает змечательно кроме того, что когда приходит пуш и окно браузера с моим сайтом не активно (открыт другой сайт) или сайт совсем закрыт, то сообщение исчезает само через 20 сек.
В моем файле https://hdlava.me/j/firebase_subscribe.js я добавил флаг requireInteraction: true в функции messaging.onMessage для того, чтобы сообщение не исчезало само пока пользователь не кликнет по нему. Это работает если сообщение прилетело в момент, когда сайт открыт. Я прописал тот же флаг в функции messaging.setBackgroundMessageHandler в файле https://hdlava.me/firebase-messaging-sw.js. Эта функция должна срабатывать (судя по документации https://firebase.google.com/docs/clo...ging/js/client), когда окно с сайтом не активно и прилетело пуш-уведомление. Но ничего не срабатывает и пуш по прежнему исчезает через 20 сек. Даже console.log в firebase-messaging-sw.js messaging.setBackgroundMessageHandler не срабатывает, а значит и сам обработчик этот не срабатывает совсем.
Может кто-нибудь помочь разобраться в чем проблема? :help:

PS: пробовал в firebase-messaging-sw.js добавить self.addEventListener("push",function(event) вместо messaging.setBackgroundMessageHandler. Срабатывает, но приходит аж 2 сообщения одновременно, одно исчезает, второе нет, но второе не кликабельно. Возможно при self.addEventListener повесить обработчик чтобы пуш кликабельным стало, и предотвратить отображение первого пуш-сообщения?


Часовой пояс GMT +3, время: 10:36.