Как прослушивать обновления Service Worker (sw-precache) изнутри Angular 4

В демонстрационном коде SW-Precache есть строка, которая регистрирует консоль, когда "старый контент будет удален, а новый контент будет добавлен в кэш". В комментариях также говорится, что сейчас самое время сообщить пользователю о наличии нового контента.

Этот сценарий, однако, находится в блоке регистрации сервисного работника, который я нашел в своем index.html файл (или мой main.ts файл; Я пробовал оба пути). Тем не менее, я хочу получать уведомления об этом обновлении из углового компонента, чтобы я мог отобразить приятное уведомление для пользователя.

Какой правильный способ сделать это? Я создаю заметное в main.ts и импортировать это в мой компонент, но это приводит к ошибкам циклической ссылки.

1 ответ

Вместо того, чтобы реализовать это самостоятельно, вы можете использовать официальный @angular/service-worker пакет, который также хорошо интегрируется с Angular CLI. Предлагает Observable который выдает значения, когда доступны новые версии. Затем вы можете уведомить пользователя, например, показать закусочную.

Выдержка из документов:

constructor(updates: SwUpdate) {
  updates.available.subscribe(event => {
    console.log('current version is', event.current);
    console.log('available version is', event.available);
  });
}
Другие вопросы по тегам