Дождитесь подтверждения пользователя перед кэшированием файлов для сервисного работника - PullRequest
1 голос
/ 24 февраля 2020

Я использую npm модуль register-service-worker для регистрации моего сервисного работника и кэширования файлов для моего приложения. Все работает, и я могу использовать приложение в автономном режиме, кэшируя целые файлы приложения.

Поэтому, когда пользователь впервые открывает приложение в браузере, все загружается на устройство пользователя. Однако я хотел бы дать пользователю возможность загружать или не загружать файлы, отображающие модальное с обоими вариантами.

Это моя функция для регистрации работника службы:

export default function registerServiceWorker() {
  if (process.env.NODE_ENV === 'production') {
    register(`${process.env.BASE_URL}service-worker.js`, {
      registrationOptions: { scope: './' },
      ready (registration) {
        console.log('Service worker is active.')
      },
      registered (registration) {
        console.log('Service worker has been registered.')
      },
      cached (registration) {
        console.log('Content has been cached for offline use.')
      },
      updatefound (registration) {
        console.log('New content is downloading.')
      },
      updated (registration) {
        console.log('New content is available; please refresh.')
      },
      offline () {
        console.log('No internet connection found. App is running in offline mode.')
      },
      error (error) {
        console.error('Error during service worker registration:', error)
      }
    })
  }
}

Это Функция вызывается в главном. js файле, точке входа для приложения. Я попытался вызвать его только после того, как пользователь нажал кнопку «да», но ничего не произошло.

Также предполагая использование API-интерфейса MessageChannel для связи между клиентским приложением и работником службы, я успешно получил сообщение, но не могу заставить событие 'onupdate' ожидать ввода пользователя.

Возможно ли это как-то достичь?

...