2016-12-24 9 views
0

Я использую "BackButton" событие Кордовы (версия 6.3.2) в моем Android приложения. Но когда нажата кнопка «Назад», приложение закрывается, а не вызывает событие «backbutton». Есть много подобных вопросов, но я должен был снова спросить, поскольку ничто не помогло мне.Android Кордова 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 работает нормально. Любая помощь очень ценится. Спасибо заранее.

+0

Чтобы проверить, подходит ли эта проблема только для события «backbutton», я попытался добавить 'volumeupbutton',' volumedownbutton' и 'menubutton'. Ни одна из этих работ не работает. Может ли кто-нибудь помочь мне отладить это, пожалуйста? – superUser

ответ

0

Я думаю, что может случиться, что ваше приложение имеет один экран, и когда нажата кнопка «Назад», он покидает приложение. Вам необходимо предотвратить поведение по умолчанию. Попробуйте добавить эту строку в событие кнопки «Назад»:

e.preventDefault(); 
+0

Спасибо за ответ, моя проблема заключается в том, что сам по себе сам по себе не запускается. Таким образом, он даже не входит в функцию обратного вызова события backbutton. – superUser

0

Если бы проблема была слишком. Для меня проблема была в затмении. Когда я построил приложение с помощью командной строки cordova и загрузил apk на Android-устройство, он работал нормально.

В eclipse у меня были другие проекты с прежними версиями Кордовы. Как класс CordovaLib уже существовал, Eclipse не импортировал новый из нового проекта, что было неправильно. Затем я отредактировал свойства нового проекта и, также, неправильно! - добавлен существующий (старый) CordovaLib под «Android» -> Library.

Правильный способ заключается в том, чтобы импортировать новый CorodovaLib вместе с проектом, переименовать его во время импорта (внимание: на Mac вы должны размыть поле имени, чтобы заставить eclipse распознать переименование. Если вы нажмете «импортировать» с помощью курсора все еще в поле имени новое имя игнорируется во время импорта), чтобы избежать конфликта имен со старым классом CordovaLib. Поэтому в свойствах проекта -> Android -> Library должна быть включена новая версия CordovaLib.

 Смежные вопросы

  • Нет связанных вопросов^_^