2015-06-11 27 views
6

Tôi cố gắng để theo dõi Nút Menu trên Android (4.4.2 - Samsung S3), nhưng Ionic event (cũng không phải là cơ bản Cordova event) không được bắn:Ionic/Cordova menubutton không được gọi

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

Có bất cứ ai có thể thực hiện công việc này? Chạy nền tảng Ionic 1.0.0 và tất cả các sự kiện khác đang kích hoạt như mong đợi.

+0

Ông có thể cung cấp một số mã html của bạn không? – QueryLars

+0

@QueryLars - không có HTML có liên quan - trên sự kiện menubutton, chúng tôi sẽ thực hiện một số JS (được nêu ở trên với khối nhận xét) –

+0

bạn có biết chắc chắn rằng tính năng liên kết này hoạt động không? bạn có thể gửi khối mà bạn có ràng buộc này không? Hoặc bạn có thể đặt một câu lệnh/cảnh báo tường trình để đảm bảo chức năng nội dòng của bạn bị ràng buộc không? – Alp

Trả lời

2

Hãy thử điều này: trong .run()

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

Sau đó, trong bộ điều khiển:

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

Một cách khác để làm điều gì đó:

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

Đã thử mã này trong mã '.run()' của tôi, nhưng hàm này không bao giờ được kích hoạt: 'document.addEventListener (" menubutton ", function() {console.log (" Button Menu);}, false); ' –

2

Các tài liệu bị thiếu một dòng.

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

Các vấn đề liên quan