Кнопку помощью PhoneGap Андроид закрыть приложение с помощью кнопки возврата на главную страницу
Я разрабатываю приложение для Android с помощью jQuery Mobile / Phonegap. У меня есть следующий код для управления кнопкой возврата телефона:
document.addEventListener("backbutton", backKeyDown, true);
function backKeyDown() {
// Call my back key code here.
$.mobile.changePage("#homepage", "slideup");
}
все это прекрасно работает, но я хотел бы, чтобы приложение закрывалось при нажатии кнопки "Назад" только на главной странице, это возможно?
4 ответа:
обновление: это перестало работать с последним обновлением Phonegap (предположительно). Не стесняйтесь предлагать рабочее решение, если вы его знаете.
вот как я делаю это:
document.addEventListener("backbutton", function(e){ if($.mobile.activePage.is('#homepage')){ /* Event preventDefault/stopPropagation not required as adding backbutton listener itself override the default behaviour. Refer below PhoneGap link. */ //e.preventDefault(); navigator.app.exitApp(); } else { navigator.app.backHistory() } }, false);
для получения дополнительной информации, здесь вы можете найти соответствующую документацию с полным примером:http://docs.phonegap.com/en/2.0.0/cordova_events_events.md.html#backbutton
document.addEventListener("deviceready", onDeviceReady, false); function onDeviceReady() { document.addEventListener("backbutton", onBackKeyDown, false); } function onBackKeyDown() { navigator.app.exitApp(); }
спасибо Спейдера.
вам нужно будет отслеживать, когда отображается Домашняя страница. Когда вы знаете, что находитесь на главной странице вызова:
navigator.app.exitApp();
Если вы не хотите использовать jQuery Mobile, изменить
$.mobile.activePage.is('#homepage')
todocument.getElementById('#homepage')
на @Spadar закрыть ответ, как на следующий код:document.addEventListener("deviceready", onDeviceReady, false); function onDeviceReady(){ document.addEventListener("backbutton", function(e){ if(document.getElementById('#homepage')){ e.preventDefault(); navigator.app.exitApp(); } else { navigator.app.backHistory() } }, false); }
таким образом, не нужно загружать jQuery Mobile тарабарщину только для этой цели. кроме того, activePage устарел с JQuery mobile 1.4.0 и будет удален из 1.5.0. (используйте метод getActivePage() из виджета pagecontainer вместо)