簡體   English   中英

在PhoneGap for Android上捕獲按鍵

[英]Capturing back key press on PhoneGap for Android

我正在使用PhoneGap進行Android應用程序開發,而我卻停留在設備上捕獲后退按鍵! 我嘗試了其他線程和官方維基頁面上的所有內容,但似乎都沒有用! :(

我可以使用keyEvent.menuTrigger和keyEvent.searchTrigger捕獲菜單和搜索鍵,但似乎無法捕獲后退按鈕按下! 我同樣嘗試了keyEvent.backTrigger,但它沒有用! 為'backKeyDown'事件添加事件監聽器也不起作用!

這是我的代碼:

BackButton.override();
    document.addEventListener('backKeyDown', function(e) {
  console.log('Caught it!');
}, false);
keyEvent.searchTrigger= searchPressed;
keyEvent.menuTrigger=menuPressed;
keyEvent.backTrigger=backPressed;

控制台說:

Line 1 : Uncaught TypeError: Cannot call method 'backTrigger' of undefined

這是不是意味着調用了something.backTrigger(),但是對象不存在。 那是什么東西? 或者有什么辦法嗎?

與KeyEvent也一樣,沒有運氣! 請幫忙!

提前致謝! :)

有關Android按鈕處理程序的PhoneGap Wiki頁面已針對PhoneGap 0.9.5進行了更新:

// This is your app's init method. Here's an example of how to use it
function init() {
    document.addEventListener("deviceready", onDR, false);
} 

function onDR(){
    document.addEventListener("backbutton", backKeyDown, true);
    //boot your app...
}

function backKeyDown() {
    // do something here if you wish
    // alert('go back!');
}

適用於PhoneGap 0.9.6

您還可以使用menubuttonsearchbutton事件處理其他按鈕。

如果你使用api級別高於2.0,那么你可以覆蓋以下功能

@Override
public void onBackPressed() {
// do something on back.
return;
}

跟蹤按下按鈕事件。

如果沒有,那么您可以覆蓋onKeyDown活動事件並跟蹤后退按鈕

@Override
public boolean onKeyDown(int keyCode, KeyEvent event)  {
    if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
        // do something on back.
        return true;
    }

    return super.onKeyDown(keyCode, event);
} 

這是我在PhoneGap w / xuijs中的表現:

// inside your 'deviceready' handler
if (device.platform == 'Android') {
    BackButton.override();

    // add backkeyDown handler
    x$(document).on('backKeyDown', onBackKeyDown);
}

// back button handler
function onBackKeyDown() {
    // do something
    // or
    // BackButton.exitApp();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM