Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/428.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在PhoneGap中捕获本机(菜单)按钮按下?_Javascript_Android_Cordova - Fatal编程技术网

Javascript 如何在PhoneGap中捕获本机(菜单)按钮按下?

Javascript 如何在PhoneGap中捕获本机(菜单)按钮按下?,javascript,android,cordova,Javascript,Android,Cordova,通过调用BackButton.override()然后连接到backKeyDown事件,我可以按下后退按钮进行注册 但是似乎没有MenuButton.override()此外,在菜单下挂起也不会注册按下按钮 这是我的(非功能性)代码。我错过了什么 <script type="text/javascript" charset="utf-8" src="phonegap.js"></script> <script type="text/javascri

通过调用
BackButton.override()
然后连接到
backKeyDown
事件,我可以按下后退按钮进行注册

但是似乎没有
MenuButton.override()此外,在
菜单下挂起也不会注册按下按钮

这是我的(非功能性)代码。我错过了什么

<script type="text/javascript" charset="utf-8" src="phonegap.js"></script>      

  <script type="text/javascript" charset="utf-8">
        document.addEventListener("deviceready", function() {

            alert('initialized');
    }, false);
    document.addEventListener("menuKeyDown", function() {

            alert('menu_pressed'); // Never happens
    }, false);
  </script>

document.addEventListener(“deviceready”,函数(){
警报(“已初始化”);
},假);
document.addEventListener(“menuKeyDown”,function()){
警报('menu_pressed');//永远不会发生
},假);

最新版本的phongap.js不支持覆盖菜单键 要进行此编辑,请添加以下代码:

KeyEvent.prototype.menuTrigger = function()
{
  var e = document.createEvent('Events');
  e.initEvent('menuKeyDown');
  document.dispatchEvent(e);
}

希望这能对您有所帮助。

谢谢,效果很好!我在DeviceRady回调中添加了它,并将menuKeyDown的addEventListener移到了DeviceRady回调之后。