Как прослушивать обновления 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);
});
}