2014-01-24 50 views
0

我是新開發sencha觸摸應用程序。我將這個應用程序轉換爲android。我試圖在我的應用程序中使用Android設備的後退按鈕,但我無法獲得正確的結果。以下是app.js文件的相關部分。安卓後退按鈕與sencha觸摸v2

launch:function(){ 
    Ext.fly('appLoadingIndicator').destroy(); 
    Ext.Viewport.add(Ext.create('Myapp.view.Main')); 
    document.addEventListener("backbutton", function(e) { 
     e.preventDefault(); 
     alert('the back key is pressed'); 
    }, false); 
}, 

上面的代碼只是用於檢查是否按壓機器人裝置的後退按鈕調用回調與否。但不幸的是我看不到警報消息。
我可以適用於上述代碼有什麼改進嗎?

回答

0

您必須使用sencha的phonegap後,您可以收聽按鈕。看看這個網站http://docs.phonegap.com/en/3.3.0/cordova_events_events.md.html#backbutton

+0

我已經閱讀此頁和以前想的代碼,但它不能爲我工作。 –

+0

我已經閱讀並接受[stackoverflow](http://stackoverflow.com/questions/11790860/how-to-handle-device-back-button-on-sencha-touch-application)。 –

+0

使用必須將phonegap腳本插入到index.html文件中。在聽到deviceready事件之後首先加載它。 監聽index.html文件的onload事件並在其中寫入此代碼 document.addEventListener(「deviceready」,onDeviceReady,false); 之後寫一個方法 函數onDeviceReady(){document.addEventListener( 「後退按鈕」,函數(E){ e.preventDefault(); 警報( '背面鍵被按下'); },假)} 因爲您必須首先初始化phonegap腳本。當腳本成功加載時,它將觸發設備準備事件。在此事件後,您可以收聽按鈕 – LostMan

0

我不明白用Ext.bind來達到目的。 將代碼改爲:

launch:function(){ 
    Ext.fly('appLoadingIndicator').destroy(); 
    Ext.Viewport.add(Ext.create('Myapp.view.Main')); 
    document.addEventListener("backbutton", Myapp.app.backKeyDown, false); 
    alert("after eventlistener"); 
}, 

backKeyDown: function(e){ 
    e.preventDefault(); 
    alert('the back key is pressed'); 
}, 

它應該工作。

[編輯]:

既然你說這仍然沒有工作,我的猜測是,你可以有範圍的問題與你的回調:

嘗試:

document.addEventListener("backbutton", function(e) { 
    e.preventDefault(); 
    alert('the back key is pressed'); 
}, false); 
+0

我從此頁面讀取[安卓後退按鈕工作](http://stackoverflow.com/questions/11790860/how-to-handle-device-back-button-on-sencha-觸摸應用程序)。然後我在我的應用程序中實現這些代碼。 –

+0

我也嘗試在我的app.js文件中使用您的suggetion代碼,但不幸的是,此解決方案無法爲我工作。只看到警報('eventlistener'之後)的消息。 –

+0

@Aubis:任何一種設置都需要這些工作嗎? –

0

您可以實現使用科爾多瓦的android後退按鈕功能。 在您的index.html寫下面的代碼:

<script type="text/javascript" charset="utf-8"> 


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

    function onDeviceReady() { 
     alert("In device"); 
     document.addEventListener("backbutton", onBackKeyDown, false); 
    } 
function onBackKeyDown() { 
     alert("hello"); 
    } 

    </script>