带sencha touch v2的android后退按钮

带sencha touch v2的android后退按钮,android,cordova,sencha-touch-2,Android,Cordova,Sencha Touch 2,我是新开发sencha触摸应用程序的。我正在将此应用程序转换为android。我试图在我的应用程序中使用android设备的后退按钮,但我无法得到正确的结果。下面是app.js文件的相关部分 launch:function(){ Ext.fly('appLoadingIndicator').destroy(); Ext.Viewport.add(Ext.create('Myapp.view.Main')); document.addEventListener("backb

我是新开发sencha触摸应用程序的。我正在将此应用程序转换为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设备的back按钮的回调。但不幸的是,我看不到警报消息。

以上代码有什么改进吗?

您必须在sencha中使用phonegap,然后才能使用“返回”按钮。看看这个网站

我不明白使用
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');
},
它应该会起作用

[编辑]:

既然您说它仍然不工作,我猜您的回调可能存在范围问题:

尝试:


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

文件。添加的监听器(“deviceready”,OnDeviceraddy,false);
函数ondevicerady(){
警报(“设备内”);
document.addEventListener(“backbutton”,onBackKeyDown,false);
}
函数onBackKeyDown(){
警惕(“你好”);
}

我已经阅读了此页面,以前也尝试过该代码,但它对我不起作用。我已经阅读了下一页。use必须将phonegap脚本插入index.html文件中。首先加载它,然后侦听deviceready事件。侦听index.html文件的onload事件,并在其文档中写入此代码;然后编写一个方法函数OnDevicerady(){document.addEventListener(“backbutton”,函数(e){e.preventDefault();alert('back键按下');},false)},因为必须首先初始化phonegap脚本。当脚本成功加载时,它触发deviceready事件。此事件发生后,您可以收听本页的“我正在阅读”按钮。然后我在我的应用程序中实现了这些代码。我还在app.js文件中尝试你的建议代码,但不幸的是,这个解决方案对我不起作用。仅查看警报('after eventlistener')消息。@Nayan_Daphi不需要权限。如果这不起作用,请尝试静态调用回调,如:
Myapp.app.backKeyDown
或直接将函数放在那里
function(){e.preventDefault();alert('back键按下');}
。请参阅我对文章的编辑。@Aubis未收到警告消息。我不知道哪里是我的错误或任何类型的错误。你在看控制台吗?有什么错误吗?你在哪里测试这个?
 <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>