Обещание подписки PushManager никогда не выполняется и не отклоняется
В настоящее время я сталкиваюсь с проблемой с некоторой версией Chrome (Chromium), когда PushManager.subscribe
Обещание от ServiceWorker остается в состоянии ожидания.
Сам код довольно прост:
return serviceWorkerRegistration.pushManager.subscribe({
userVisibleOnly: true
});
У меня есть действительный и доступный манифест JSON, в котором указан идентификатор отправителя GCM. Я также пробовал разные реализации, как описано в этом посте, но результат все тот же.
Часть подписки работает хорошо с каждой версией 47+, проблема появляется со старыми версиями. (Я использую непрерывные сборки Chromium для тестирования разных основных версий).
Также обратите внимание, что при использовании Chromium 46 (и ниже) в Ubuntu обещание отклоняется через 15 минут с Internal Server Error
,
7 ответов
У меня была такая же проблема при использовании корпоративного прокси. Поскольку нет подключения к Интернету, подписка не может быть установлена, и обещание никогда не выполняется.
Похоже, что команда Chromium работала над этим. Если я не ошибаюсь, исправление будет выпущено на Chrome 55
Проблема с userVisibleOnly: true в качестве параметра.
Это было введено только в chrome 47. Перед этим вам нужно передать его в качестве параметра manifest. https://johnme-gcm.appspot.com/manifest.json - хороший пример для подражания.
Когда вы подписываетесь на pushManager, в службу push-уведомлений браузера отправляется запрос для конечной точки подписки. Если он не выполняется или отклоняется, вероятно, из-за проблемы с установлением соединения с вашим браузером.
У меня была такая же проблема в Chrome 67, и перезапуск браузера исправил ее.
Эта проблема воспроизводима в chrome 55.0.2883.87 в Windows 7. Обещание подписки не является ни решающим, ни отклоняющим. Но это происходит только на одной машине с упомянутой комбинацией