Сервисный работник не позволяет PWA показывать в автономном режиме - PullRequest
0 голосов
/ 15 февраля 2019

У меня есть PWA, который не работает в автономном режиме.В сети он отлично работает, но когда я переключаюсь в автономный режим, он ничего не делает.Я подозреваю, что это как-то связано с моим файлом service-worker.js -

var dataCacheName = 'sigmaApp';
var cacheName = 'sigmaApp';
var filesToCache = [
  "/", 
  "./images/icons/icon-128x128.png",
  "./images/icons/icon-144x144.png",
  "./images/icons/icon-152x152.png",
  "./images/icons/icon-192x192.png",
  "./images/icons/icon-256x256.png",
  "./images/create-how-boxes.png",
  "./images/create-how-lines.png",
  "./images/create-what-logo-1.png",
  "./images/create-what-logo-2.png",
  "./images/create-who-telkomsel.png",
  "./images/create-who-volvo.png",
  "./images/create-who-windstream.png",
  "./images/create-why-hand.png",
  "./images/create-why-rock.png",
  "./images/deliver-what-logo-1.png",
  "./images/deliver-what-logo-2.png",
  "./images/deliver-why-road-orange.png",
  "./images/deliver-why-roads.png",
  "./images/sell-how-phone.png",
  "./images/sell-how-sphere.png",
  "./images/sell-what-logo-1.png",
  "./images/sell-what-logo-1.png",
  "./images/sell-what-logo-2.png",
  "./images/sell-why-block.png",
  "./images/sell-why-hand.png",
  "./images/telkomsel-logo.png",
  "./scripts",
  "./index.html",
  "./manifest.json",
  "./scripts/jquery-3.3.1.js",
  "./scripts/swiper.min.js",
  "./scripts/swiper.min.js.map",
  "./scripts/tube-animation.min.js",
  "./scripts/typeit.min.js",
  "./scripts/scripts.js",
  "./service-worker.js",
  "./styles",
  "./styles/style.min.css",
  "./videos/create-what-infographic-1.mp4",
  "./scripts/swiper.min.js.map"
];

self.addEventListener('install', function(e) {
  console.log('[ServiceWorker] Install');
  e.waitUntil(
    caches.open(cacheName).then(function(cache) {
      console.log('[ServiceWorker] Caching app shell');
      return cache.addAll(filesToCache);
    })
  );
});

self.addEventListener('activate', function(e) {
  console.log('[ServiceWorker] Activate');
  e.waitUntil(
    caches.keys().then(function(keyList) {
      return Promise.all(keyList.map(function(key) {
        if (key !== cacheName && key !== dataCacheName) {
          console.log('[ServiceWorker] Removing old cache', key);
          return caches.delete(key);
        }
      }));
    })
  );
  return self.clients.claim();
});

self.addEventListener('fetch', function(e) {
  console.log('[Service Worker] Fetch', e.request.url);
  e.respondWith(
    caches.match(e.request).then(function(response) {
      return response || fetch(e.request);
    })
  );
});

Похоже, что моя страница выдает ошибку: Uncaught (in обещание) TypeError: Запрос не выполнен в моем сервис-работнике.JS файл в моем слушателе событий установки.Я чувствую, что он проходит через массив filesToCache и выдает ошибку там.

Кто-нибудь знает, что я делаю не так?

1 Ответ

0 голосов
/ 18 февраля 2019

Оказывается, это была моя вина.Я случайно добавил два файла, которые были одинаковыми, поэтому из-за этого произошла ошибка.

"./images/sell-what-logo-1.png",
"./images/sell-what-logo-1.png",

Надеюсь, это поможет кому-то еще

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...