5

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

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

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

它不起作用我已经寻找解决方案。但是,他们都显示要更改 PhoneGap 库中的java代码,这不是我的情况。我正在以.zip格式提交我的应用程序,其中包含config.xml

是否可以使用config.xml

4

2 回答 2

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

于 2013-01-08T05:44:30.657 回答
3

它在 Cordova API 文档中说

通常,一旦您收到 PhoneGap 'deviceready' 事件,您将希望使用 document.addEventListener 附加一个事件侦听器。

所以像这样改变你的代码

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
}
于 2013-01-08T04:30:07.897 回答