нужна ваша помощь, ребята. Я пытаюсь предложить пользователю всякий раз, когда он / она пытается отойти от текущего браузера (обновить, закрыть вкладку и окно, нажав кнопку возврата в браузере) .У меня возникла эта проблема на IOS mobile, которая не запускает скрытие страницы и / или beforeunload .
Я знаю, что safari больше не поддерживает событие beforeunload, поэтому я добавил прослушиватель событий для pagehide с похожимлогика и то тоже не стреляет.Код написан в угловом формате.
Подход попытался:
// Method decorator, Did not work for both
@Hostlistner(window:pagehide), @Hostlistner(window:beforeunload)
doSomething(event:any){
event.returnValue = true;
return true;
}
// Component host property, Also tried this on beforeunload, did not work for both
@Component({
...
host: "(window:pagehide)" : "doSomething($event)"
})
// Plain javascript, have tried pagehide too, did not work for both
window.onbeforeunload = (event) => {
event.returnValue = true;
return true;
};
//Also tried binding it via addEventListener method of window/document, did not work for both
window.addEventListener('beforeunload', (event) => {
this.log("before unload");
event.returnValue = true;
return true;
});
пробовал его с помощью stackblitz: https://stackblitz.com/edit/angular-qkezha?file=src%2Fapp%2Fapp.component.ts
Использование устройства для проверки проблемы:IPhone 6, IOS 12.1
Проблема возникает в Mobile IOS как для Chrome, так и для Safari , еще не тестировал его в Firefox, но я сомневаюсь, что он будет работать и там.Код работает на Android Chrome и Windows Desktop Chrome
Я занимаюсь этим уже несколько дней.Поиск здесь и там.Любая помощь или советы очень ценится.Спасибо, ребята!