Service Worker не работает в большинстве мобильных браузеров - PullRequest
0 голосов
/ 03 января 2019

У меня есть статический сайт с сервисным работником, который размещен на страницах GitLab и отлично работает в автономном режиме на моем ноутбуке, но иногда не работает в автономном режиме почти в любом мобильном браузере (работает в Opera Mini, но не в мобильном Chrome ). Поэтому я пытаюсь понять, что с ним не так.

Мой сценарий регистрации работника сервиса, который вызывается по адресу index.html в корне моего сайта:

if ('serviceWorker' in navigator) {
  window.addEventListener('load', function() {
    navigator.serviceWorker.register('./serviceWorker.js').then(function (registration) {
      // Registration was successful
      console.log('ServiceWorker registration successful with scope: ', registration.scope);
    }, function (err) {
      // registration failed :(
      console.log('ServiceWorker registration failed: ', err);
    });
  });
}

Мой сервис Сам работник:

let cache_v1 = 'cache_v1';

self.addEventListener('install', function(event) {
  event.waitUntil(
    caches.open(cache_v1)
    .then(cache => cache.addAll(
      [
        './',
        './index.html',
        './favicon.png',
        './dist/bundle.js',
        './dist/style.css',
        './src/icons/soyuz_apollo192.png',
        './src/icons/soyuz_apollo_apple_icon.png',
        './src/img/asia.png',
        './src/img/pustota.jpeg',
        './src/img/zima-min.jpg'
      ]
    ))
  )
})

self.addEventListener('fetch', function(event) {
  event.respondWith(
    caches.match(event.request)
      .then(matching => {
        return matching || fetch(event.request)
      })
    )
})

Скажите, есть ли что-то, что вам нужно знать, чтобы помочь

...