在PhoneGap 1.9中使用Pause和backbutton事件

时间:2012-09-20 18:54:22

标签: javascript android events cordova

我在PhoneGap中遇到一些事件有问题。当我尝试将事件监听器注册到phonegap-app的暂停和后退事件时(在PhoneGap-Build上构建),事件无法被识别。

我的代码如下所示:

function onBackKeyDown() {
    console.log("Back");
}

function onMenuKeyDown() {
    console.log("Menu");
}

function pause() {
    console.log("Menu");
}

function ready(){
    console.log("ready");
    document.addEventListener("pause", pause, false);
    document.addEventListener("backbutton", onBackKeyDown, false);
    document.addEventListener("menubutton", onMenuKeyDown, false);
}
document.addEventListener("deviceready", ready, false);

如果我在HTC Wildfire上运行此应用程序,我可以在日志中看到,已达到功能就绪(输出已完成)。但是,如果我点击后退或搜索按钮或退出应用程序,则不会调用其他任何功能。

任何人都可以帮我吗?

谢谢!


我的其余代码如下所示(我刚写了一个小例子,以确保我的代码中没有错误......)

main.js:

function onBackKeyDown() {
    console.log("Back");
    alert("Back");
}

function onMenuKeyDown() {
    console.log("Menu");
    alert("Menu");
}

function onMenuSearch() {
    console.log("onMenuSearch");
    alert("onMenuSearch");
}

function pause() {
    console.log("Menu");
    alert("Pause");
}

function onResume(){
    console.log("Resume");
    alert("Resume");
}

function ready(){
    alert("Ready");
    console.log("ready");
    document.addEventListener("pause", pause, false);
    document.addEventListener("backbutton", onBackKeyDown, false);
    document.addEventListener("menubutton", onMenuKeyDown, false);
    document.addEventListener("searchbutton", onMenuSearch, false);
    document.addEventListener("resume", onResume,false);
}

document.addEventListener("deviceready", ready, false);

的index.html

<!DOCTYPE html>
<!--[if lt IE 7]>      <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]>         <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]>         <html class="no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]-->
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
        <title></title>
        <meta name="description" content="">
        <meta name="viewport" content="width=device-width">
    </head>
    <body>
        <!-- Add your site or application content here -->
        <p>Hello world! This is HTML5 Boilerplate.</p>

        <script src="js/main.js"></script>
    </body>
</html>

正如我已经说过的,我正在使用PhonegapBuild在多个平台上构建应用程序,因此我没有在我的应用程序中集成cordova脚本。

...谢谢

1 个答案:

答案 0 :(得分:0)

<!DOCTYPE html>
<!--[if lt IE 7]>      <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]>         <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]>         <html class="no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]-->
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
        <title></title>
        <meta name="description" content="">
        <meta name="viewport" content="width=device-width">
    </head>
    <body>
        <!-- Add your site or application content here -->
        <p>Hello world! This is HTML5 Boilerplate.</p>

        <script src="js/main.js"></script>
    </body>
</html>