在PhoneGap中停止退出Android按钮 - 构建

时间:2013-01-08 03:17:11

标签: android cordova

我正在通过 PhoneGap Build 在线构建我的应用程序。 我想更改后退按钮的默认行为

$(document).ready(function(e) {
    document.addEventListener("backbutton", onBackKeyDown, false);
});

function onBackKeyDown(){
    alert('back');
    return false;
}

它不起作用我已经搜索了解决方案。但是,他们都表示要更改PhoneGap库中的 java 代码,这不是我的情况。我在 .zip 格式中使用 config.xml 提交我的应用程序。

是否可以使用 config.xml

2 个答案:

答案 0 :(得分:6)

首先,我按照@Mejo的指示做错了,谢谢。这是问题的解决方案。

第1步:将脚本包含到HTML中,不需要在应用程序zip中实际使用它,因为PhoneGap Build 自动包含

<script src="cordova.js"></script><script src="phonegap.js"></script>任何一种都可以正常使用。

第2步:将此添加到脚本中以获取设备就绪电话:

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

第3步:事件监听器添加到后退按钮,并将您的代码添加到该通话中:

function onDeviceReady(){
    document.addEventListener("backbutton", onBackKeyDown, false);
}
function onBackKeyDown(){
    alert('back');
    return false;
}

如果你没有通过 config.xml minSDK 的偏好设置为应用程序,它仍然无效

第4步:将此添加到 config.xml 的首选项区域

<preference name="android-minSdkVersion" value="5" />

供参考:http://community.phonegap.com/nitobi/topics/how_to_handle_back_button_in_android

答案 1 :(得分:3)

它在Cordova API文档中说

  

通常,您需要附加一个事件监听器   document.addEventListener 收到PhoneGap'deviceready'后   事件

所以改变你的代码

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

// PhoneGap is loaded and it is now safe to make calls PhoneGap methods
function onDeviceReady() {
    // Register the event listener
    document.addEventListener("backbutton", onBackKeyDown, false);
}

// Handle the back button
function onBackKeyDown() {
         //Your backbutton code
}