2015-06-11 12 views
6

Sto cercando di monitorare il pulsante Menu sul Android (4.4.2 - Samsung S3), ma il Ionic event (né il sottostante Cordova event) non è sparare:ionico/Cordova MenuButton evento non chiamato

$ionicPlatform.on("menubutton", function() { 
    // do our stuff here (never gets called) 
}); 

Ha qualcuno è stato in grado di fare questo lavoro? L'esecuzione della piattaforma Ionic 1.0.0 e tutti gli altri eventi vengono attivati ​​come previsto.

+0

Potrebbe fornire alcune del codice HTML come bene? – QueryLars

+0

@QueryLars - non c'è HTML rilevante - sull'evento menubutton, eseguiremo alcuni JS (indicati sopra con il blocco dei commenti) –

+0

sai per certo che questa associazione funziona? puoi pubblicare il blocco dove hai questo legame? O puoi inserire una dichiarazione/avviso di registro per assicurarti che la tua funzione inline sia vincolata? – Alp

risposta

2

Prova questo: nel .run()

$ionicPlatform.ready(function() { 
//... 
    if (window.cordova) { 
     $cordovaSplashscreen.hide(); 
     document.addEventListener("menubutton", myApp.onHardwareMenuKeyDown, false); 
    } 
/... 

Poi nel controller:

$scope.onHardwareMenuKeyDown = function() { 
    alert('menu button is working'); 
} 

Un altro modo per fare qualcosa:

angular.module('myApp', ['ngCordova', 'ionic', 'myApp.controllers']) 
    .run(function($ionicPlatform, $rootScope, $state, $localstorage,$ionicSideMenuDelegate) { 

    $ionicPlatform.ready(function() { 

     document.addEventListener("menubutton", onMenuKeyDown, false); 

     function onMenuKeyDown() { 
      console.log("some menu pops pup!! "); 
      // here change the view , etc... 
      $rootScope.$apply(); 
     } 

    }); 

}) 
+1

Ho provato questo codice nel mio codice '.run()', ma la funzione non viene mai attivata: 'document.addEventListener (" menubutton ", function() {console.log (" Menu Button);}, false); ' –

2

I documenti mancanti una linea.

document.addEventListener("deviceready", function() { 
    ... 
    navigator.app.overrideButton("menubutton", true); // <-- Add this line 
    document.addEventListener("menubutton", yourCallbackFunction, false); 
    ... 
}, false); 

https://issues.apache.org/jira/browse/CB-9949#comment-14989073

Problemi correlati