带有sencha touch v2的android后退按钮

时间:2014-01-24 10:04:52

标签: android cordova sencha-touch-2

我是开发sencha touch应用程序的新手。我正在为Android转换此应用程序。我试图在我的应用程序中使用Android设备的后退按钮,但我无法得到正确的结果。以下是app.js文件的相关部分。

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);  
},  

以上代码仅用于检查是否调用了按下Android设备后退按钮的回调。但不幸的是,我看不到警报信息 我可以对上面的代码有什么改进吗?

3 个答案:

答案 0 :(得分:0)

您必须使用带有sencha的phonegap,然后才能收听按钮。查看此网站http://docs.phonegap.com/en/3.3.0/cordova_events_events.md.html#backbutton

答案 1 :(得分: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);

答案 2 :(得分:0)

您可以使用cordova实现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>