Я следую этому руководству: https://developers.google.com/web/fundamentals/codelabs/push-notifications#notification_click и реализовал его в VueJS.
На созданном хуке я запускаю эту функцию:
register() {
if ("serviceWorker" in navigator && "PushManager" in window) {
console.log("Service Worker and Push is supported");
navigator.serviceWorker
.register("/sw.js")
.then(function (swReg) {
console.log("Service Worker is registered", swReg);
swRegistration = swReg;
})
.catch(function (error) {
console.error("Service Worker Error", error);
});
} else {
console.warn("Push messaging is not supported");
pushButton.textContent = "Push Not Supported";
}
}
Моя консоль в Chrome, Safari и Firefox печатает:
"Service Worker and Push is supported"
"Service Worker is registered >ServiceWorkerRegistration"
"Service Worker Error ReferenceError: swRegistration is not defined"
Кто-нибудь знает, почему swReg может регистрироваться, но swRegistration не назначается?
.then(function (swReg) {
console.log("Service Worker is registered", swReg);
swRegistration = swReg;