4

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

还有其他类似的问题,但到目前为止,我只能看到使用document.addEventListener或使用 jQuery 方法来添加事件侦听器的建议,但它确实不起作用。任何人都可以给我一个可靠的方法来检测它们吗?

这是<head>我的 index.html

<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>
4

1 回答 1

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>
于 2012-12-26T09:29:00.403 回答