PhoneGap - Menubutton ничего не запускает - PullRequest
0 голосов
/ 13 октября 2011

У меня есть следующий код для проверки кнопки меню:

<script type="text/javascript" cahrset="utf-8">     
    //wait till device is ready
document.addEventListener("deviceready", onDeviceReady(), false);

//add a menu button event handler
function onDeviceReady() {
    alert('deviceready');
    document.addEventListener("menubutton", onMenuKeyDown(), false);
}
    //fired when menubutton of device is clicked
function onMenuKeyDown() {
    alert('menu key down');
}

</script>

однако, когда я нажимаю на кнопку меню, ничего не происходит. Logcat ничего не говорит, но я думаю, поскольку это из тега "веб-консоль", это может быть полезно:

10-13 15:46:16.720: INFO/Web Console(13969): Error in success callback: Network Status1 = TypeError: Cannot read property 'apply' of undefined at :-2167

Я следовал этому уроку из Справочника по API Phonegap , но он, похоже, не обрабатывает нажатия кнопок меню. любая помощь? Большое спасибо заранее, Даниэль

edit: Может быть, вам полезно знать, что происходит: когда я нажимаю кнопку меню, logcat показывает

10-18 09:21:52.560: WARN/WindowManager(152): statePower =normal

также, событие «кнопка поиска» не работает либо

Ответы [ 3 ]

3 голосов
/ 06 ноября 2011

Из того, что я вижу, похоже, проблема с вашими слушателями.Добавляя квадратные скобки в конце имени функции, вы вызываете функцию сразу же, когда слушатель настроен, вместо того, чтобы задавать ссылку для события, запускаемого позже.

Попробуйте:

document.addEventListener("deviceready", onDeviceReady, false);

И:

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

Надеюсь, это поможет!

0 голосов
/ 04 апреля 2013

Хорошо, это хорошо для меня

var menuOpen = true;
var menuDiv = "";
function onLoad(){
        document.addEventListener("deviceready", onDeviceReady, false);
        menuDiv = document.querySelector("#menu");
}
function onDeviceReady(){

            document.addEventListener("menubutton", onMenuKeyDown, false);
}
function onMenuKeyDown() {

                if(menuOpen) {
                    console.log("close the menu");
                    menuDiv.style.display="none";
                    menuOpen = false;
                } else {
                        console.log("open the menu");
                        menuDiv.style.display="block";
                        menuOpen = true;
                }
}
0 голосов
/ 13 июля 2012

Проверьте свой тег body . Убедитесь, что он вызывает функцию onload () . Как это:

<body onload="onLoad()">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...