我在Android应用中使用了 Cordova(版本6.3.2)的“ backbutton ”事件。但是当单击后退按钮时,应用程序将关闭,而不是触发后退按钮事件。有许多类似的问题,但我不得不再问,因为没有什么帮助我。
我的初始脚本:
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事件正常工作。 很感谢任何形式的帮助。 提前谢谢。
答案 0 :(得分:0)
我认为可能发生的事情是你的应用程序有一个屏幕,当按下后退按钮时它会退出应用程序。您需要阻止默认的后退行为。尝试在后退按钮事件中添加此行:
e.preventDefault();
答案 1 :(得分:0)
也有问题。对我来说,问题出现在日食中。当我使用cordova命令行构建应用程序并将apk下载到Android设备时,它工作正常。
在eclipse中我有其他项目使用以前版本的Cordova。由于CordovaLib已经存在,Eclipse没有从新项目中导入新项目,这是错误的。然后我编辑了新项目的属性 - 也错了! - 在“Android”下添加了现有的(旧)CordovaLib - >库。
正确的方法是将新的CorodovaLib与项目一起导入,在导入期间重命名它(注意:在Mac上你必须模糊名称字段以使eclipse识别重命名。如果你单击'导入'仍然光标仍然在名称字段中,导入期间将忽略新名称,以避免名称与旧的CordovaLib类冲突。所以在项目的属性 - > Android - >库应该包含新版本的CordovaLib。