Приветствую, столкнулись с трудностями оптимизации Google Chrome, а именно если переключиться с вкладки приложения на другую вкладку и некоторое время находится там, то воспроизведения звука по websocket сообщению не работает.
По гуглил, тут вообщем 2 беды:
1)
Chrome начиная с 57 версии начала активно подавлят...
2) Ровно год назад (декабрь 2018)
Google Chrome обновил правила воспроизведения звуков
Исходя из этого, у меня в приложении я реализовал следующее:
1) У нас сообщение дублируются и в firebase для уведомлений, соответственно повесил обработчик в service workers и при новых push уведомлениях я шлю через postMessage в приложение сообщение, для воспроизведения звука, этот метод советовали
в статье на хабре, но он так же не работает, если перейти в другую вкладку на некоторое время
2) Иногда я замечал, что postMessage успешно отправлять данные о новом уведомление в обработчик во вкладке, но там возникает ошибка, которую перехватил try catch и с ссылкой на
https://developers.google.com/web/updates/2017/09/...
3) Нашел на stackoverflow хак, если добавить аудио файл и зациклить его, то Chrome не будет подавлять его работу в фоне, не знаю пока на сколько это решение актуально, напоминает ситуацию с iOS старых версий, когда такой же метод использовали, как отметили в комментарии к статье на хабре
Отсюда исходит вопрос, почему в вконтакте это работает (уведомления о новых сообщениях), как это реализовать, кто с этим сталкивался? поделитесь плиз своим решением