У меня есть какое-то решение для этого. Надеюсь, что любой из них решит вашу проблему.
constructor() {
window.onbeforeunload = ()=>{
//call API here
}
}
В конструкторе компонентов напишите код выше
ИЛИ
На мой взгляд, лучшая идея заключается в том, чтобы сделать API сердцебиения, который отправляет запросы каждые N секунд, чтобы уведомить сервер о том, что сеанс активен и пользователь находится в сети. На сервере каждые M минут проверяйте, не было ли запросов сердцебиения более N секунд: если это так - выполняйте запрос API (то, что вы хотели выполнить на cra sh).
ИЛИ
«beforeunload» будет запускаться при обновлении страниц, закрытии вкладки или закрытии браузера.
@HostListener('window:beforeunload', ['$event'])
beforeUnload(e: Event) {
e.returnValue = false;
}
ИЛИ
Невозможно обеспечить что каждый раз, когда пользователь выходит из страницы браузера, срабатывает указанная c функция. Причина в том, что браузер может закрыть окно по многим причинам. Да, это может быть действие пользователя, но это не единственный случай. Например, браузер может обработать sh.
. В моем случае мне нужно будет найти другую стратегию для отслеживания времени пребывания пользователя на странице. Например, я планирую отправить много вызовов API, прежде чем пользователь завершит работу со всей информацией, необходимой для понимания его пребывания на странице. Я обновлю ответ, когда найду хорошее решение. В любом случае, я все еще буду ждать лучших ответов.