2015-06-11 19 views
6

Ben Android (4.4.2 - Samsung S3) Menü Düğmesi izlemek için çalışıyorum çağrılmaz ancak Ionic event (ne de altında yatan Cordova event) tetiklenmesi değildir:İyonik/Cordova'nın MenuButton olay

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

Has Bu işi kim yaptı? İyonik platform 1.0.0 çalıştırıyor ve diğer tüm etkinlikler beklendiği gibi ateşleniyor. denetleyicisi Sonra) (.run içinde

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

:

+0

siz de html kodunun bir kısmını verebilir misiniz? – QueryLars

+0

@QueryLars - alakalı HTML yoktur - menubutton olayında, bazı JS'leri (yukarıda yorum bloğu ile belirtilir) çalıştırırız –

+0

Bu bağlamanın çalıştığından emin misiniz? Bu bağlama sahip olduğunuz bloğu yayınlayabilir misiniz? Veya satır içi işlevinizin bağlı olduğundan emin olmak için bir günlük deyimi/uyarısı koyabilirsiniz? – Alp

cevap

2

bu deneyin

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

şey yapmanın bir başka yolu: docs eksik

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

Bu kodu ".run()' kodumda denedim, ancak işlev tetiklenmez: 'document.addEventListener (" menubutton ", function() {console.log (" Menü Düğmesi);}, false); " –