我正在通过 PhoneGap Build 在线构建我的应用程序。 我想更改后退按钮的默认行为
$(document).ready(function(e) {
document.addEventListener("backbutton", onBackKeyDown, false);
});
function onBackKeyDown(){
alert('back');
return false;
}
它不起作用我已经搜索了解决方案。但是,他们都表示要更改PhoneGap库中的 java 代码,这不是我的情况。我在 .zip 格式中使用 config.xml 提交我的应用程序。
是否可以使用 config.xml ?
答案 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
}