我使用Android app
创建了cordova 2.6.0
。我在我的应用中使用menu
标记和html
实现了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设备上发生
答案 0 :(得分:10)
使用侦听器覆盖后退按钮后,它不会执行本机功能。您还必须实现退出行为。
在最重要的方法中,使用以下
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();
}
});
希望有所帮助。
答案 1 :(得分:1)
回答你的问题:
是document.addEventListener('backbutton',function(){});超过设备的后退按钮?如何摆脱它?
您还可以删除页面重定向上的事件侦听器,以便在后续页面中继续使用后退按钮的本机功能。用于删除事件侦听器的代码如下:
document.removeEventListener("backbutton", onBackButton, false);
其中onBackButton是与后退按钮事件关联的函数。