我正在尝试监控Android上的菜单按钮(4.4.2 - Samsung S3),但Ionic event(也不是基础的Cordova event)未触发:
$ionicPlatform.on("menubutton", function () {
// do our stuff here (never gets called)
});
有没有人能够做到这一点?运行Ionic平台1.0.0,所有其他事件都按预期启动。
答案 0 :(得分:3)
文档缺少一行。
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
答案 1 :(得分:2)
试试这个: 在.run()
中$ionicPlatform.ready(function() {
//...
if (window.cordova) {
$cordovaSplashscreen.hide();
document.addEventListener("menubutton", myApp.onHardwareMenuKeyDown, false);
}
/...
然后在控制器中:
$scope.onHardwareMenuKeyDown = function() {
alert('menu button is working');
}
另一种做事方式:
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();
}
});
})