2013/08/26

PhoneGap 開發:Android back button 事件處理

使用 PhoneGap 開發 app 時,在 Android 平台上,預設按下 back button 的處理方式是關閉程式,這應該會讓使用者崩潰。PhoneGap 有提供對應的 backbutton 事件可以註冊,這樣就可以照自己的方式來處理。


這邊的處理方式是呼叫原生的 confirm 對話框,詢問 user 是否離開:
// Register event for back button
document.addEventListener("backbutton", function() { 
    navigator.notification.confirm(
        '你確定要離開程式嗎?', 
        onConfirmQuit, 
        '關閉', 
        ['確定', '取消']
    );
}, true);

function onConfirmQuit(button) {
    if (button == "1") {
        // Leave app
        navigator.app.exitApp(); 
    }
}


身為一個 Sencha Touch 的使用者,用客制化的視窗也是可以 OK 的
document.addEventListener("backbutton", function() { 
    Ext.Msg.confirm("關閉", "你確定要離開程式嗎?", function(buttonId) {
        if (buttonId == 'yes')
            navigator.app.exitApp();
    });
}, true);

更進階的做法就是讓使用者按下 back 時可以回到上一層的畫面,不過這邊我也還沒試過,目前的想法是啓用 location hash,按下 back 時就像瀏覽器回到上一頁一樣。參考:History Support - Touch 2.2.1 - Sencha Docs


沒有留言:

張貼留言