Android Cordova后退按钮事件未触发

时间:2016-12-24 17:48:53

标签: android cordova back-button

我在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事件正常工作。 很感谢任何形式的帮助。 提前谢谢。

2 个答案:

答案 0 :(得分:0)

我认为可能发生的事情是你的应用程序有一个屏幕,当按下后退按钮时它会退出应用程序。您需要阻止默认的后退行为。尝试在后退按钮事件中添加此行:

e.preventDefault();

答案 1 :(得分:0)

也有问题。对我来说,问题出现在日食中。当我使用cordova命令行构建应用程序并将apk下载到Android设备时,它工作正常。

在eclipse中我有其他项目使用以前版本的Cordova。由于CordovaLib已经存在,Eclipse没有从新项目中导入新项目,这是错误的。然后我编辑了新项目的属性 - 也错了! - 在“Android”下添加了现有的(旧)CordovaLib - >库。

正确的方法是将新的CorodovaLib与项目一起导入,在导入期间重命名它(注意:在Mac上你必须模糊名称字段以使eclipse识别重命名。如果你单击'导入'仍然光标仍然在名称字段中,导入期间将忽略新名称,以避免名称与旧的CordovaLib类冲突。所以在项目的属性 - > Android - >库应该包含新版本的CordovaLib。