Как я могу отправить "офлайн" сообщение от Service Worker? - PullRequest
3 голосов
/ 08 мая 2020

Как мне вернуть кеш с сообщением офлайн. Возможно ли это?

код, который у меня до сих пор, просто отправляет обратно кеш:

const cachedFetch = request => request.method != 'GET' ? 

  fetch(request) : 
  caches.open("demo").then(cache =>
    cache.match(request).then(resp => {
      if(!!resp) {
        console.log('cache', request.url)
        return resp;// how to send custom message back with resp
      } else {
        console.log('not in cache', request.url)
        return fetch(request).then(response => {
         return response


        })
      }
    })
  )

self.addEventListener('fetch', event => event.respondWith(
    cachedFetch(event.request)
  )
)

1 Ответ

1 голос
/ 08 мая 2020

Service Worker может использовать postMessage() для уведомления клиента. Кроме того, приложение также может прослушивать онлайн / офлайн события независимо от Service Worker:

https://developer.mozilla.org/en-US/docs/Web/API/NavigatorOnLine/Online_and_offline_events

...