Слушатель событий со спинкой Javascript переопределяет кнопку возврата Android-устройства
Я создал Android app
с помощью cordova 2.6.0
. Я применил функцию menu
в своем приложении, используя html
markups и jQuery
, которая переключается при взаимодействии с устройством menubutton
. Но я не мог понять, как выполнить следующее требование: вести себя как родное приложение.
Требование
menu
должен скрываться при нажатии на устройство backbutton
, если menu
- visible
. Если menu
не видно, backbutton
должен теперь действовать нормально, то есть либо он должен exit
app
, либо перейти к back history
.
Это мой код
document.addEventListener('deviceready', function(){
document.addEventListener('menubutton', function(){
//Toggle Menu
//Which is working fine
});
document.addEventListener('backbutton', function(){
if(menu is visible) {
//Hide the menu
//This is also working fine
return false;
}
//BUT the default action of backbutton has gone. It cannot exit the app , neither it brings to back history.
//return true;
//I have also tried to return boolean true , but facing the same problem.
});
}, false);
Актуальная проблема
Если я подключил eventlistener
для backbutton
, устройство Back Button
отключено, оно не работает как обычно.
Мой вопрос
Перемещается ли document.addEventListener('backbutton', function(){});
на кнопку возврата устройства? Как избавиться от него?
Это происходит на устройстве Android 4.1.2
Ответы
Ответ 1
После того как вы переопределили кнопку "Назад" с помощью прослушивателя, он не выполняет собственные функции. Вы также должны реализовать поведение выхода.
В своем методе переопределения используйте следующие
document.addEventListener('backbutton', function(){
if(menu is visible) {
//Hide the menu
//This is also working fine
return false;
}
else //nothing is visible, exit the app
{
navigator.app.exitApp();
}
});
Надеюсь, что это поможет.
Ответ 2
Чтобы ответить на ваш вопрос:
Является document.addEventListener('backbutton', function() {}); над верхом кнопки назад устройства? Как избавиться от него?
Вы также можете удалить прослушиватель событий на странице redirect, чтобы продолжить использование встроенной функции кнопки "Назад" на последующих страницах. Код для удаления прослушивателя событий следующим образом:
document.removeEventListener("backbutton", onBackButton, false);
где onBackButton - это функция, связанная с событием задней кнопки.