[英]Javascript backbutton event listener overrides the android device back button
我使用cordova 2.6.0
创建了Android app
。 我在我的应用程序中使用html
标记和jQuery
实现了一个menu
功能,它可以切换与设备的menubutton
进行交互。 但我无法想出达到以下要求,表现得像本机应用程序。
需求
如果menu
visible
, menu
应隐藏在按设备的backbutton
按钮上。 如果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设备上发生的
使用侦听器覆盖后退按钮后,它不会执行本机功能。 您还必须实现退出行为。
在您的重写方法中,使用以下方法
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();
}
});
希望有所帮助。
回答你的问题:
是document.addEventListener('backbutton',function(){}); 超过设备的后退按钮? 如何摆脱它?
您还可以删除页面重定向上的事件侦听器,以继续使用后续页面中后退按钮的本机功能。 删除事件侦听器的代码如下:
document.removeEventListener("backbutton", onBackButton, false);
其中onBackButton是与后退按钮事件关联的函数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.