如何检测Android上的后退和菜单按钮? PhoneGap + jQuery Mobile

时间:2012-12-25 16:13:37

标签: jquery cordova jquery-mobile

我在jQuery Mobile v1.2.0和PhoneGap v2.2.0上。没有一个PhoneGap事件似乎正在触发,但是我称之为(通过document.addEventListener$(document).on。后退按钮和菜单按钮检测不起作用。

还有其他这样的问题,但到目前为止我所能看到的是使用document.addEventListener或使用jQuery方法添加事件监听器的建议,但它确实不起作用。有人能给我一个确定的方法来检测它们吗?

以下是我的index.html的<head>

<head>
    <title></title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <meta name="format-detection" content="telephone=no" />
    <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" />

    <link rel="stylesheet" href="jqm/jquery.mobile-1.2.0.css" />
    <link rel="stylesheet" href="jqm/jquery.mobile.theme-1.2.0.css" />
    <script src="js/jquery.js"></script>
    <script src="jqm/jquery.mobile-1.2.0.js"></script>
    <script src="js/cordova.js"></script>
    <script type="text/javascript">
        $(document).live("pagechange",function(){
            var page = $.mobile.activePage.attr("id");

            document.addEventListener("menubutton", menuKeyDown, true);
            function menuKeyDown() {
                alert('Menu button pressed.');
            }
        });
    </script>
</head>

1 个答案:

答案 0 :(得分:6)

在上传到build.phonegap.com之前,删除项目中的“cordova.js”。并尝试以下代码。

<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="format-detection" content="telephone=no"/>
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi"/>
<link rel="stylesheet" href="jqm/jquery.mobile-1.2.0.css"/>
<link rel="stylesheet" href="jqm/jquery.mobile.theme-1.2.0.css"/>
<script src="js/jquery.js"></script>
<script src="jqm/jquery.mobile-1.2.0.js"></script>
<script src="js/cordova.js"></script>
<script type="text/javascript">
        $(document).live("pagechange",function(){
            var page = $.mobile.activePage.attr("id");
        });
        document.addEventListener("deviceready", function () {
            document.addEventListener("menubutton", menuKeyDown, true);
        }, false);
        function menuKeyDown() {
                alert('Menu button pressed.');
            }
    </script>
</head>