В настоящее время я столкнулся с проблемой с некоторыми версиями Chrome (Chromium), где обещание PushManager.subscribe
от ServiceWorker остается в состоянии ожидания.Подписание подписки PushManager никогда не выполняется и не отклоняется
Сам код очень прост:
return serviceWorkerRegistration.pushManager.subscribe({
userVisibleOnly: true
});
У меня есть действительный и доступный JSON манифест, обеспечивающий GCM Sender ID. Я также пробовал различные реализации, как описано в this post, но результат все тот же.
Подписная часть хорошо работает с каждой версией 47+, проблема появляется со старыми версиями. (Я использую непрерывные сборки Chromium для тестирования различных основных версий).
Также обратите внимание, что, используя Chromium 46 (и ниже) на Ubuntu, обещание отклоняет через 15 минут с помощью Internal Server Error
.
Нужно ли вам поддерживать такие старые версии Chrome? Текущая стабильная версия - 49. Возможно, что-то изменилось в том, что переговоры Chrome с GCM и более старые версии больше не поддерживаются? – Marco
Действительно, поскольку у Chrome есть функция автоматического обновления, разница в 2 или 3 версии, пользователи со старыми версиями являются незначительными. Хотя, это глобальная цифра, может быть, некоторые в каком-то месте/стране, обновление, как правило, прибывает в последнее время. Является ли отсутствие поддержки от GCM из созданных мной Chromium-сборников или «более старомодных» выпусков Chrome? – Arturo
Я не уверен, я запускаю тесты для своей библиотеки веб-push (https://github.com/marco-c/web-push) и в Firefox и Chromium, и они работают, но в тестах я всегда используя последние версии. – Marco