首页 文章

Android Cordova后退按钮事件未触发

提问于
浏览
0

我在我的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 回答

  • 0

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

    e.preventDefault();
    
  • 0

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

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

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

相关问题