Events Sencha touch收听phonegap事件

Events Sencha touch收听phonegap事件,events,extjs,sencha-touch,cordova,Events,Extjs,Sencha Touch,Cordova,我正在尝试让Sencha Touch收听phonegap发布的活动,我能在网上找到的任何帮助都只指向Sencha活动。我也尝试过设置听众和“.on”,但它似乎对外部事件不起作用 我不是说任何特定的事件,只是任何像“恢复”或“电池状态”这样的事件 请不要回复Ext.device,因为Sencha对Ext.device的支持有限且过时,因为当一家公司试图为另一家公司提供包装时,它总是这样,我想充分利用最新phonegap版本提供的所有功能。您应该能够添加phonegap特定的侦听器,如下所示: do

我正在尝试让Sencha Touch收听phonegap发布的活动,我能在网上找到的任何帮助都只指向Sencha活动。我也尝试过设置听众和“.on”,但它似乎对外部事件不起作用

我不是说任何特定的事件,只是任何像“恢复”或“电池状态”这样的事件


请不要回复Ext.device,因为Sencha对Ext.device的支持有限且过时,因为当一家公司试图为另一家公司提供包装时,它总是这样,我想充分利用最新phonegap版本提供的所有功能。

您应该能够添加phonegap特定的侦听器,如下所示:

document.addEventListener("deviceready", function() {
    document.addEventListener("backbutton", MyApp.backButtonListener, false);
    document.addEventListener("menubutton", MyApp.menuButtonListener, false);
}, false);

MyApp.backButtonListener = function(e) {
    e.preventDefault();
    //do other stuff here...
}

MyApp.menuButtonListener = function(e) {
    e.preventDefault();
    //do other stuff here...
}

您应该能够添加PhoneGap特定的侦听器,如下所示:

document.addEventListener("deviceready", function() {
    document.addEventListener("backbutton", MyApp.backButtonListener, false);
    document.addEventListener("menubutton", MyApp.menuButtonListener, false);
}, false);

MyApp.backButtonListener = function(e) {
    e.preventDefault();
    //do other stuff here...
}

MyApp.menuButtonListener = function(e) {
    e.preventDefault();
    //do other stuff here...
}

你可以做这样的事情,我已经测试过了,它正在工作!

编辑:
事实证明,将处理程序放在app.js文件中不是一个好主意(尽管它仍然可以正常工作)。因为如果你升级sencha,它希望这个文件不会被修改太多

所以你应该把它放在主控制器的启动功能中。控制器的启动功能在应用程序的启动功能之后执行

Ext.define('TestApp.controller.Main'{
扩展:“Ext.app.Controller”,
...
启动:函数(){
//在这里连接PhoneGap的事件
document.addEventListener(“暂停”,this.onPause,false);
文件。添加的列表(“简历”,此为“简历”,错误);
},
onPause:function(){
//此代码很好,但在此处使用“this”并不安全
console.log(“onPause”);
},
onResume:function(){
console.log(“onResume”);
}
...
});

您可以做类似的事情,我已经测试过了,它正在工作!

编辑:
事实证明,将处理程序放在app.js文件中不是一个好主意(尽管它仍然可以正常工作)。因为如果你升级sencha,它希望这个文件不会被修改太多

所以你应该把它放在主控制器的启动功能中。控制器的启动功能在应用程序的启动功能之后执行

Ext.define('TestApp.controller.Main'{
扩展:“Ext.app.Controller”,
...
启动:函数(){
//在这里连接PhoneGap的事件
document.addEventListener(“暂停”,this.onPause,false);
文件。添加的列表(“简历”,此为“简历”,错误);
},
onPause:function(){
//此代码很好,但在此处使用“this”并不安全
console.log(“onPause”);
},
onResume:function(){
console.log(“onResume”);
}
...
});

您不需要使用DeviceRady,因为Sencha Touch会在DeviceRady事件触发后等待加载。--这只适用于类中的静态方法,而不适用于实例类。对类实例的回调如何,我很确定Sencha有一些方法可以轻松做到这一点。您不需要使用DeviceRady,因为Sencha Touch会在触发DeviceRady事件后等待加载。--这只适用于类中的静态方法,而不适用于实例类。回调一个类的实例怎么样,我很确定Sencha有一些方法可以轻松做到这一点。