progressive web app для опенкарт

Приложение не работает offline... Регистрация Service worker

window.addEventListener('load', async () => {
  if ('serviceWorker' in navigator) {
    try {
      const reg = await navigator.serviceWorker.register('/service-worker.js')
      console.log('Service worker register success', reg)
    } catch (e) {
      console.log('Service worker register fail')
    }
  }
})

Service-worker.js -

const staticCacheName = 's-app-v1.9'
const dynamicCacheName = 'd-app-v1.1'

const assetUrls = [
  './offline.html',
  './index.php',
  './contacts.php',
  './blog.php',
  'catalog/view/theme/default/stylesheet/fonts.css',
  'catalog/view/theme/default/stylesheet/main.css',
  'catalog/view/javascript/slick/slick.css',
  'catalog/view/javascript/common.js',
  'catalog/view/javascript/slick/slick-theme.css',
  'catalog/view/javascript/jquery/owl-carousel/owl.carousel.css',
  'catalog/view/javascript/jquery/owl-carousel/owl.transitions.css',
  'catalog/view/javascript/jquery/owl-carousel/owl.carousel.min.js',
  'catalog/view/javascript/slick/slick.min.js',
  '/image/catalog/LOGO.png'
]

self.addEventListener('install', async event => {
  const cache = await caches.open(staticCacheName)
  await cache.addAll(assetUrls)
})

self.addEventListener('activate', async event => {
  const cacheNames = await caches.keys()
  await Promise.all(
    cacheNames
      .filter(name => name !== staticCacheName)
      .filter(name => name !== dynamicCacheName)
      .map(name => caches.delete(name))
  )
})

self.addEventListener('fetch', event => {
  const {request} = event

  const url = new URL(request.url)
  if (url.origin === location.origin) {
    event.respondWith(cacheFirst(request))
  } else {
    event.respondWith(networkFirst(request))
  }
})


async function cacheFirst(request) {
  const cached = await caches.match(request)
  return cached ?? await fetch(request)
}

async function networkFirst(request) {
  const cache = await caches.open(dynamicCacheName)
  try {
    const response = await fetch(request)
    await cache.put(request, response.clone())
    return response
  } catch (e) {
    const cached = await cache.match(request)
    return cached ?? await caches.match('./offline.html')
  }
}

Ответы (0 шт):