Вызов по умолчанию Phonegap Back Button Handler

У меня есть приложение phonegap, которое требует захвата кнопки «Назад». Это работает плавно, но когда я нахожусь на главном экране и нажимаю кнопку «Назад», я хочу вызвать обработчик исходного события и закрыть приложение или сделать все, что естественно приходит на платформу с такой печатью. Я знаю, что могу сказать, что приложение перестает работать, но понимаю, что это плохая форма для iPhone-приложений.

Независимо от того, что я пытаюсь (и я пробовал много вещей), я не могу запустить обработчик оригиналов. Любой совет?

В моем коде у меня есть оператор switch внутри моего обработчика событий backbutton, который направляет приложение по мере необходимости на эффект:

switch blahBlah { case 'this' : doThis() ; break; case 'main' : // What do I do here that is well behaved for all platforms??? break; default: doFoo() ; } 

Обнаруживать каждый раз, когда вы приземляетесь на главный экран и удаляете свой собственный обработчик событий.

 document.removeEventListener( "backbutton", function(){}, false ); 

И добавьте прослушиватель событий на другие страницы (или разделы).

 document.addEventListener( "backbutton", OverrideBackButton, false ); 

Надеюсь, это поможет.

Это то, что я использовал и, похоже, отлично работает для моих нужд

  function pageinit() { document.addEventListener("deviceready", deviceInfo, true); } function deviceInfo() { document.addEventListener("backbutton", onBackButton, true); } function onBackButton(e) { try{ var activePage = $.mobile.activePage.attr('id'); if(activePage == 'Options'){ closeOptions(); } else if(activePage == 'Popup'){ closePopup(); } else if(activePage == 'HomePage'){ function checkButtonSelection(iValue){ if (iValue == 2){ navigator.app.exitApp(); } } e.preventDefault(); navigator.notification.confirm( "Are you sure you want to EXIT the program?", checkButtonSelection, 'EXIT APP:', 'Cancel,OK'); } else { navigator.app.backHistory(); } } catch(e){ console.log('Exception: '+e,3); } } 

Надеюсь это поможет…

Легкий и плавный способ сделать это может быть что-то вроде этого, это заявление работало в моем случае:

 if($("#mainPage").is(".ui-page-active")){ navigator.app.exitApp(); } 

Я использую jQuery: http://demos.jquerymobile.com/1.0a3/docs/api/globalconfig.html

С уважением 🙂