将 sencha touch 2 集成到 phonegap 中,无法启动 'deviceready' 事件
Posted
技术标签:
【中文标题】将 sencha touch 2 集成到 phonegap 中,无法启动 \'deviceready\' 事件【英文标题】:Integrate sencha touch 2 into phonegap, cannot get 'deviceready' event to fire up将 sencha touch 2 集成到 phonegap 中,无法启动 'deviceready' 事件 【发布时间】:2012-05-03 11:30:32 【问题描述】:这似乎是 PhoneGap 0.9.6 (Blackberry) + Sencha Touch 1.1.0: deviceready does not fire 之外的另一个问题,它与 ios 相关。
所以,我无法启动该事件;使用最新的cordova (phonegap) 1.6.1。
有没有人成功整合了这些 ST2 和 PhoneGap?
这是我的 app.json :
"js": [
"path": "resources/js/cordova-1.6.1.js",
"update": "delta"
,
"path": "sdk/sencha-touch.js"
,
"path": "app.js",
"update": "delta"
,
],
我的 app.js:
launch: function()
// Destroy the #appLoadingIndicator element
Ext.fly('appLoadingIndicator').destroy();
var mainPanel = Ext.Viewport.add(
xclass: 'Sencha.view.Main'
);
// load phonegap stuff
document.addEventListener("deviceready", function ()
mainPanel.fireEvent("deviceready");
, true);
,
我的 Main.js 控制器:
Ext.define('Sencha.controller.Main',
extend: 'Ext.app.Controller',
config:
refs:
mainPanel: 'mainpanel',
,
control:
mainpanel:
deviceready: 'onDeviceReady'
,
,
,
onDeviceReady: function()
var states = ;
states[Connection.UNKNOWN] = 'Unknown connection';
states[Connection.ETHERNET] = 'Ethernet connection';
states[Connection.WIFI] = 'WiFi connection';
states[Connection.CELL_2G] = 'Cell 2G connection';
states[Connection.CELL_3G] = 'Cell 3G connection';
states[Connection.CELL_4G] = 'Cell 4G connection';
states[Connection.NONE] = 'No network connection';
Ext.Msg.alert('Connection type', states[networkState], Ext.emptyFn);
navigator.notification.beep(2);
,
【问题讨论】:
我已成功集成旧版本(PG 1.2、ST 1.1)。您的代码在之前的 PhoneGap 版本中是否有效,还是这是一个新问题?如果您将 PhoneGap 事件侦听器与 Sencha Touch 事件(从其他地方触发事件)分开测试(仅显示警报)会发生什么? 您好,不清楚;我怎样才能单独启动监听器;能给我举个例子吗 ?我的工作环境。是 ST2 PG 1.7.0 我想知道您是否可以缩小问题的范围。如果您这样做,是否会显示警报:document.addEventListener("deviceready", function () alert('deviceready'); , true);
抱歉耽搁了。在 index.html 中添加您的行可以正常工作,但不能在其他任何地方。
【参考方案1】:
Sencha Touch 2 将监听该事件并调用您的 onReady/launch 方法 - 因此,如果您尝试在启动方法中监听它们,它已经被触发了。
只需将您的逻辑放在应用程序的启动方法中即可。
【讨论】:
以上是关于将 sencha touch 2 集成到 phonegap 中,无法启动 'deviceready' 事件的主要内容,如果未能解决你的问题,请参考以下文章
Sencha Touch - 如何将各种图标(每个项目一个)集成到选择字段中?
Sencha Touch 2:数据集成或如何在sencha和javascript之间共享动态信息
Phonegap 和 Sencha Touch 2.3 集成
将 Sencha Architect 项目从 Sencha Touch v2.0.x 更新到 Sencha Touch 2.1.x