[ https://issues.apache.org/jira/browse/CB-3534?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Mike Kwan closed CB-3534. ------------------------- Resolution: Fixed I can confirm this is fixed on 3.1.0 - would be interesting to know what was causing this originally. > Multiple CDVViewControllers - deviceready not fired and cordova.exec events > queued up till backgrounding > -------------------------------------------------------------------------------------------------------- > > Key: CB-3534 > URL: https://issues.apache.org/jira/browse/CB-3534 > Project: Apache Cordova > Issue Type: Bug > Components: App Hello World, CordovaJS, iOS > Affects Versions: 2.3.0, 2.7.0 > Environment: Reproducible on iPhone/iPad 6.1 Simulator and Device. > Reporter: Mike Kwan > Assignee: Shazron Abdullah > Priority: Critical > Fix For: 3.2.0 > > Attachments: CordovaBug.zip, Screen Shot 2013-05-29 at 13.55.42.png, > Screen Shot 2013-05-29 at 14.31.44.png > > > Minimal example reproducing the problem is attached and set up as follows: > # Custom container view controller split into two halves each containing a > _CDVViewController_ > # Top half loads and after a delay (3000ms) fires a _NSNotification_ > # In response to the _NSNotification_ the top half loads a green page and > the bottom half loads a red page > Both red pages and green pages have an event listener for *deviceready*: > {code} > function onDeviceReady() { > alert('deviceready from XXXXX'); // colour here > cordova.exec(null, null, 'Echo', 'echo', ['hello']); > }; > {code} > {panel:title=Observed > Behaviour|borderStyle=dashed|borderColor=#ccc|titleBGColor=#F7D6C1|bgColor=#FFFFCE} > - _deviceready_ is fired only for the red page (bottom) > - The _cordova.exec_ succeeds for the red page (bottom) > - _deviceready_ is not fired for the green page (top) > {panel} > {panel:title=Expected > Behaviour|borderStyle=dashed|borderColor=#ccc|titleBGColor=#F7D6C1|bgColor=#FFFFCE} > _deviceready_ should be fired for both the green and red page simultaneously > and the _cordova.exec_ events should go through immediately. > {panel} > {panel:title=Extra > Details|borderStyle=dashed|borderColor=#ccc|titleBGColor=#F7D6C1|bgColor=#FFFFCE} > This bug reproduces the first time the app is launched (reset the simulator > to reproduce). On subsequent launches the app behaves as expected. > The _deviceready_ can be triggered by certain events for the top page: > - Pulling down the notification bar > - Backgrounding > If _deviceready_ is triggered by pulling down the notification bar, the > _cordova.exec_ is still not fired for the green page. The _cordova.exec_ > message is queued up and finally does go through when the app is backgrounded. > {panel} > This bug is remarkably similar to the following: > https://issues.apache.org/jira/browse/CB-2094 > Perhaps it is an edge case which was overlooked? This bug reproduces on 2.3.0 > and 2.7.0 - I have not tried other versions yet. -- This message was sent by Atlassian JIRA (v6.1#6144)