Обработка кнопки возврата Android на мобильном сайте без использования PhoneGap - PullRequest
4 голосов
/ 04 ноября 2011

Мне нужно перехватить событие возврата Android с помощью простого Javascript (если это возможно),

У меня есть мобильный сайт, на котором я хочу предупредить пользователя и закрыть весь сайт одним нажатием кнопки «Назад» в любой части моего сайта, мне не нужно переходить назад к моей истории

Примечание. Я не хочу включать поддержку Phonegap на моем сайте.

Любые идеи будут великолепны!

Редактировать: Я также использовал

window.onbeforeunload = function() {
  return "Do you want to exit?";
};

Это также не поможет моей ситуации, потому что это будет вызвано при разгрузке URL, я перемещаюсь от страницы к странице, используя div с использованием #ID (using Jquery Mobile <div data-role="page"></div>)

Поэтому я очень хочу получить событие по нажатию кнопки «Назад» на Android

Ответы [ 3 ]

1 голос
/ 04 ноября 2011

Вы не можете обнаружить это событие без какого-либо собственного Java-кода, поэтому вам придется либо прослушивать событие hashchange в сочетании со стеком истории, чтобы определить, когда пользователь возвращается, либо использовать Phonegap.Если вам нужно что-то сделать до того, как пользователь вернется, тогда единственным вариантом будет какой-то нативный код.

0 голосов
/ 10 августа 2012

Попробуйте window.onpopstate

window.onpopstate = function (evt) {              
    if (isAndroid()) {   
        // Android hack. After printing location and state, I can read the state. Not before.
        var triggerCheck = "location: " + document.location + ", state: " + JSON.stringify(evt.state);
        //check evt.state if its previous url or not then do your thing   
    }  
};

Что важно, так это попытаться отслеживать, где вы находитесь с evt.state.Кажется, у меня нормально работает.

0 голосов
/ 04 ноября 2011

Вы пытались поймать событие <body onunload=""\>? Вы могли бы сделать window.close там, чтобы предотвратить вызов истории.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...