我在我的Android应用中使用 Cordova (version 6.3.2) 的“ backbutton ”事件 . 但是当单击后退按钮时,应用程序将关闭,而不是触发后退按钮事件 . 有许多类似的问题,但我不得不再问,因为没有什么帮助我 .
My Init Script :
var cordovaInit = function (){
//To bootstrap the app manually once the device is ready
var receivedEvent = function (){
angular.bootstrap($('body'), ['myModule']);
};
var onDeviceReady = function (){
console.log("Device Ready");
receivedEvent('deviceReady');
document.addEventListener("backbutton", function(e){
// My Code here
});
};
//call onDeviceReady when the device is ready
this.bindEvents = function (){
document.addEventListener('deviceReady', onDeviceReady, false);
};
//If cordova is present, wait for it to initialize, otherwise just try to
//bootstrap the application.
if(window.cordova !== undefined){
this.bindEvents();
}
else{
receivedEvent();
}
};
$(function (){
new cordovaInit();
});
正如您在上面看到的那样,我正在 deviceReady 事件之后注册事件,并且deviceReady事件正常工作 . 很感谢任何形式的帮助 . 提前致谢 .
2 回答
我想可能发生的事情是你的应用程序有一个屏幕,当按下后退按钮时它会退出应用程序 . 您需要阻止默认的后退行为 . 尝试在后退按钮事件中添加此行:
也有问题 . 对我来说,问题出现在日食中 . 当我使用cordova命令行构建应用程序并将apk下载到Android设备时,它工作正常 .
在eclipse中,我有其他项目与前版本的Cordova . 由于CordovaLib已经存在,Eclipse没有从新项目中导入新项目,这是错误的 . 然后我编辑了新项目的属性 - 也错了! - 在“Android” - > Library下添加了现有的(旧)CordovaLib .
正确的方法是将新的CorodovaLib与项目一起导入,在导入期间重命名它(注意:在Mac上你必须模糊名称字段以使eclipse识别重命名 . 如果点击'import',光标仍然在名称中字段新名称在导入期间被忽略,以避免名称与旧的CordovaLib类冲突 . 所以在项目的属性 - > Android - > Library中应该包含新版本的CordovaLib .