скрытие страницы и / или загрузка без IOS в Chrome, Safari - PullRequest
0 голосов
/ 14 ноября 2018

нужна ваша помощь, ребята. Я пытаюсь предложить пользователю всякий раз, когда он / она пытается отойти от текущего браузера (обновить, закрыть вкладку и окно, нажав кнопку возврата в браузере) .У меня возникла эта проблема на 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

Я занимаюсь этим уже несколько дней.Поиск здесь и там.Любая помощь или советы очень ценится.Спасибо, ребята!

...