14

我已经Android app使用cordova 2.6.0. 我menu在我的应用程序中使用html标记实现了一项功能,该功能在jQuery与设备的menubutton. 但我无法想出要达到以下要求,表现得像本机应用程序。

要求

如果是,则menu应该隐藏在按下设备上。如果不可见,则现在应该正常运行,也就是说,它应该或转到。backbuttonmenuvisiblemenubackbuttonexitappback 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 设备上

4

2 回答 2

11

一旦您使用侦听器覆盖了后退按钮,它就不会执行本机功能。您还必须实现退出行为。

在您的覆盖方法中,使用以下

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

希望有帮助。

于 2013-09-25T08:26:36.433 回答
1

要回答您的问题:

是 document.addEventListener('backbutton', function(){}); 骑过设备的后退按钮?如何摆脱它?

您也可以删除页面重定向上的事件侦听器,以继续在后续页面中使用后退按钮的本机功能。删除事件监听器的代码如下:

document.removeEventListener("backbutton", onBackButton, false);其中 onBackButton 是与后退按钮事件关联的函数。

于 2016-12-26T09:11:52.203 回答