Я протестировал событие pagehide, используя приведенный ниже код, и обнаружил, что оно хорошо работает для определения того, перешел ли пользователь по другой ссылке или просто открыл новую вкладку, когда вы находитесь в сафари.
Однако, если вы находитесь в веб-приложении, сохраненном на вашем домашнем экране (как вы описываете), тогда событие pagehide бесполезно для определения того, было ли веб-приложение закрыто.
В зависимости от того, что вам конкретно нужно, вы можете обойти это ограничение, сохранив данные в localStorage, а затем проверив localStorage, когда приложение снова откроется. Затем вы можете выполнить любую дополнительную работу, которая может потребоваться, прежде чем приложение полностью запустится снова.
function myLoadHandler(evt)
{
if (evt.persisted) {
alert('user returns to page from another tab');
return;
}
alert('loading new page');
}
function myUnloadHandler(evt)
{
if (evt.persisted) {
alert('user goes to new tab');
return;
}
alert('user truly leaves the page');
}
if ("onpagehide" in window) {
window.addEventListener("pageshow", myLoadHandler, false);
window.addEventListener("pagehide", myUnloadHandler, false);
} else {
window.addEventListener("load", myLoadHandler, false);
window.addEventListener("unload", myUnloadHandler, false);
}
person
cruzanmo
schedule
08.06.2011