[ https://issues.apache.org/jira/browse/CB-499?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Filip Maj resolved CB-499. -------------------------- Resolution: Fixed Found the issue. All about timing and some peculiarities about how iOS changes the {{document.readyState}}. I've fixed it in [2a8cdb|http://git-wip-us.apache.org/repos/asf?p=incubator-cordova-js.git;a=commit;h=2a8cdb98b764fcdd513d049ea5a35d95c3a119e2]. Tweaking the ordering of some code around in cordova-js fixed the issue. One thing we do is [listen for the DOMContentLoaded event to fire on document before we start building up the cordova API on the window|https://github.com/apache/incubator-cordova-js/blob/master/lib/scripts/bootstrap.js#L12-L17]. This is all fine, however, we attach to the {{DOMContentLoaded}} event pretty late: the {{boot}} function I link to above does not get called until the native side of cordova is all instantiated (all cordova APIs and everything) and fires the {{onNativeReady}} Channel. By the time we attach to {{DOMContentLoaded}}, it is already fired, and we never build up the cordova JS objects, and thus, deviceready never fires. With how this relates to requirejs, I'm not sure. My theory is that because requirejs creates and attaches new <script> tags as its loading method, this probably somehow messes with {{document.readyState}}. Funny that it only affects iOS. In any case, the fix worked for me on my iPod Touch. As a quick fix, check out the [commit diff here|http://git-wip-us.apache.org/repos/asf?p=incubator-cordova-js.git;a=commitdiff;h=2a8cdb98b764fcdd513d049ea5a35d95c3a119e2;hp=44f82b8e630e88e1cfc1bd4a57f9b175bd61833b] and just apply those changes to your cordova.js file. Hope that helps, Fil > Cordova 1.6 breaks with RequireJS > --------------------------------- > > Key: CB-499 > URL: https://issues.apache.org/jira/browse/CB-499 > Project: Apache Callback > Issue Type: Bug > Components: CordovaJS, iOS > Affects Versions: 1.6.0, 1.6.1 > Environment: iOS (iPod Touch), Cordova 1.6.0 or 1.6.1, RequireJS 1.0.7 > Reporter: Dewang Shah > Assignee: Filip Maj > Fix For: 1.7.0 > > Attachments: www-michal.tar.gz > > > Cordova 1.6 breaks compatibility with RequireJS. This uesd to work in 1.5 but > now stops all other Require modules from loading. The deviceready event fires > within seconds (much sooner that 1.5) and then all modules fail to load. > Making Cordova the last module to load does not make any difference. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira