Здравствуйте. Возникла потребность подключить к сайту сервис рассылки push-уведомлений. В js-файле, предоставляемом сервисом для работы функционала, была всего одна строка: "importScripts('
https://ссылка-на-их-сервис/файл.js')". После подключения в консоли браузера стала появляться ошибка "importScripts is not defined". Погуглил, попробовал подключить так, как писали в советах. Но не помогло. Иногда ошибка пропадала, но сам функционал не работал (должно появляться окно с просьбой разрешить уведомления).
Что я пробовал:
1.
var worker = new Worker('https://push.esputnik.com/service-worker.js');
worker.postMessage("test");
Никакой реакции.
2.
if( 'function' === typeof importScripts) {
importScripts('https://push.esputnik.com/service-worker.js');
addEventListener('message', onMessage);
function onMessage(e) {
// do some work here
console.log('work');
}
}
Условие не сработало.
3.
if ( 'undefined' === typeof window) {
console.log('work');
importScripts('https://push.esputnik.com/service-worker.js');
}
Условие не сработало.
4. Просто ради эксперимента...
if ('serviceWorker' in navigator) {
navigator.serviceWorker.register('https://push.esputnik.com/service-worker.js').then(function(reg) {
// регистрация сработала
console.log('Registration succeeded. Scope is ' + reg.scope);
}).catch(function(error) {
// регистрация прошла неудачно
console.log('Registration failed with ' + error);
});
};
Регистрация прошла неудачно... Выдало ошибку, связанную с безопасностью.