#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 — я не знаю ответа на этот вопрос, я бы предложил задать его как отдельный вопрос. Извините!