Проверка выполнения Http-запросов при открытии Angular-PWA

#angular #progressive-web-apps #service-worker #angular-service-worker

#angular #прогрессивные веб-приложения #service-worker #angular-service-worker

Вопрос:

Мне нужно сделать http-запрос, когда мое прогрессивное веб-приложение открыто. Это отлично работает, когда пользователь закрывает приложение. Но когда он все еще находится в памяти и открыт (например, на следующий день), мой http-запрос не выполняется.

Запрос помещается в ngOnInit().

Существует ли какой-либо метод жизненного цикла, который гарантирует, что он выполняется, когда компонент выходит на передний план?

Ответ №1:

В дополнение к отправке запросов в ngOnInit() функции, прослушайте изменения видимости страницы и сделайте запрос, как только страница снова станет видимой.

 document.addEventListener('visibilitychange', () => {
  if (document.visibilityState === 'visible') {
    console.log('Page visible, make HTTP requests!');
  }
});
 

API жизненного цикла страницы покрывает некоторые из этих функций, но нет ни одного события, которое срабатывало бы как при загрузке страницы, так и при повторном отображении страницы.

Комментарии:

1. Большое вам спасибо! Есть ли разница между document.addEventListener(…) и @HostListener(‘window:focus’, [‘$event’])?

2. @prosk — я не знаю ответа на этот вопрос, я бы предложил задать его как отдельный вопрос. Извините!