Phonegap Android后退button – 在主页上closures后退button的应用程序

我正在开发一个使用Jquery Mobile / Phonegap的Android应用程序。 我有以下代码来控制手机的后退button:

document.addEventListener("backbutton", backKeyDown, true); function backKeyDown() { // Call my back key code here. $.mobile.changePage("#homepage", "slideup"); } 

这一切工作正常,但我想要的应用程序closures时只按下主页上的后退button,这可能吗?

更新:这已停止使用最新的Phonegap更新(据说)。 如果你知道的话,随时提供一个工作的解决scheme。


以下是我如何做到这一点:

 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(); } 

谢谢你,spader。

您需要跟踪主页的显示时间。 当你知道你在主页上打电话时:

 navigator.app.exitApp(); 

如果您不想使用jQuery Mobile,请在$.mobile.activePage.is('#homepage')更改为document.getElementById('#homepage')closures答案,如下面的代码所示:

 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移动1.4.0弃用,将从1.5.0中删除。 ( 使用pagecontainer小部件中的getActivePage()方法 )