[ https://issues.apache.org/jira/browse/CB-3534?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13678046#comment-13678046 ]
Mike Kwan edited comment on CB-3534 at 6/7/13 2:35 PM: ------------------------------------------------------- The issue seems to be that the *me.getInfo* (leading to *exec(..., ..., 'Device', 'getDeviceInfo', []))* for the top page does not get through to the native side. This means the callback from *channel.join()* never gets invoked. *fetchCommandsFromJs* never gets called for the top page which so *nativeFetchMessages* never drains the command queue. Investigating further... was (Author: mike kwan): The issue seems to be that the *me.getInfo* (leading to *exec(..., ..., 'Device', 'getDeviceInfo', []))* for the top page does not get through to the native side. This means the callback from *channel.join()* never gets invoked. Investigating further... > 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 > 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 is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira