[
https://issues.apache.org/jira/browse/CB-2094?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13538398#comment-13538398
]
Shazron Abdullah commented on CB-2094:
--------------------------------------
There appears to be a scoping problem when setTimeout is wrapped around the
fire function. This apply() doesn't work:
https://github.com/apache/cordova-ios/blob/534a7a1702014b1503a624881cbdd900aa3a3b09/CordovaLib/cordova.ios.js#L690
The work-around is, make your deviceready handler be a global function like so
in app.js for a new project:
{code}
bindEvents: function() {
// doesn't work for CB-2094
document.addEventListener('deviceready', this.onDeviceReady, false);
// works for CB-2094
x = function() {
alert('deviceready global');
}
document.addEventListener('deviceready', x, false);
},
{code}
> Cordova 2.30 not reliably firing deviceready after reload of local files
> ------------------------------------------------------------------------
>
> Key: CB-2094
> URL: https://issues.apache.org/jira/browse/CB-2094
> Project: Apache Cordova
> Issue Type: Bug
> Components: iOS
> Affects Versions: 2.3.0
> Reporter: Bob Moore
> Assignee: Shazron Abdullah
> Labels: Cordova, deviceready
> Attachments: index.html, MainViewController.h, MainViewController.m,
> MainViewController.xib
>
>
> I've added a semi transparent home button to the MainViewController which
> loads the local index.html file within my Cordova 2.30 project. After I've
> moved on to a remote page, (may be Cordova enabled, may not) and I return
> with the home button, sometimes deviceready does not fire. It may fire a few
> times then stop. Once it stops the only way to fix the issue is to send the
> app to the background (deviceready will now fire) and return.
> This same technique works fine in Cordova 2.20
--
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