You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cordova.apache.org by "Guopeng Liang (JIRA)" <ji...@apache.org> on 2013/07/24 18:59:48 UTC
[jira] [Comment Edited] (CB-4034) Cordova fails to initialize if
loading startPage from non application bundle location
[ https://issues.apache.org/jira/browse/CB-4034?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13718575#comment-13718575 ]
Guopeng Liang edited comment on CB-4034 at 7/24/13 4:58 PM:
------------------------------------------------------------
Hey, I've experienced the deviceready-event-not-firing issue and dug into the cordova.js file (Cordova 2.9.0).
I setup some trace in the cordova.js file and got:
2013-07-25 00:44:11.868 DailyCost[41959:a0b] WARN: {"type":"onCordovaReady","handlers":{},"state":2,"fireArgs":[],"numHandlers":0,"onHasSubscribersChange":null}
2013-07-25 00:44:11.868 DailyCost[41959:a0b] WARN: {"type":"onCordovaConnectionReady","handlers":{},"state":1,"fireArgs":null,"numHandlers":0,"onHasSubscribersChange":null}
2013-07-25 00:44:11.868 DailyCost[41959:a0b] WARN: {"type":"onDOMContentLoaded","handlers":{},"state":2,"fireArgs":[],"numHandlers":0,"onHasSubscribersChange":null}
2013-07-25 00:44:11.868 DailyCost[41959:a0b] WARN: {"type":"onCordovaInfoReady","handlers":{},"state":1,"fireArgs":null,"numHandlers":0,"onHasSubscribersChange":null}
2013-07-25 00:44:11.869 DailyCost[41959:a0b] WARN: {"type":"onCordovaInfoReady","handlers":{},"state":1,"fireArgs":null,"numHandlers":0,"onHasSubscribersChange":null}
Interestingly in my case, it seems that "onCordovaConnectionReady" is having trouble firing, thus blocking "deviceready" to fire.
When I do either of the following modifications, the "deviceready" event fires successfully:
#1. Add a setTimeout() around here:
setTimeout(function() {
channel.join(function() {
require('cordova').fireDocumentEvent('deviceready');
}, channel.deviceReadyChannelsArray);
}, 0);
#2. Add an alert(1) right before the above code (without the setTimeout() wrapper).
Based on the above experiment, adding a small delay seems to solve the problem (maybe some synchronization issue in the event firing code?)
At this moment the #1 solution works fine for me.
I hope this information helps.
was (Author: guopengliang):
Hey, I've experienced the deviceready-event-not-firing issue and dug into the cordova.js file (Cordova 2.9.0).
I setup some trace in the cordova.js file and got:
2013-07-25 00:44:11.868 DailyCost[41959:a0b] WARN: {"type":"onCordovaReady","handlers":{},"state":2,"fireArgs":[],"numHandlers":0,"onHasSubscribersChange":null}
2013-07-25 00:44:11.868 DailyCost[41959:a0b] WARN: {"type":"onCordovaConnectionReady","handlers":{},"state":1,"fireArgs":null,"numHandlers":0,"onHasSubscribersChange":null}
2013-07-25 00:44:11.868 DailyCost[41959:a0b] WARN: {"type":"onDOMContentLoaded","handlers":{},"state":2,"fireArgs":[],"numHandlers":0,"onHasSubscribersChange":null}
2013-07-25 00:44:11.868 DailyCost[41959:a0b] WARN: {"type":"onCordovaInfoReady","handlers":{},"state":1,"fireArgs":null,"numHandlers":0,"onHasSubscribersChange":null}
2013-07-25 00:44:11.869 DailyCost[41959:a0b] WARN: {"type":"onCordovaInfoReady","handlers":{},"state":1,"fireArgs":null,"numHandlers":0,"onHasSubscribersChange":null}
Interestingly in my case, it seems that "onCordovaConnectionReady" is having trouble firing, thus blocking "deviceready" to fire.
When I do either of the following modifications, the "deviceready" event fires successfully:
#1. Add a setTimeout() around here:
setTimeout(function() {
channel.join(function() {
require('cordova').fireDocumentEvent('deviceready');
}, channel.deviceReadyChannelsArray);
}, 0);
#2. Add an alert(1) right before the above code (without the setTimeout() wrapper).
Based on the above experiment, adding a small delay seems to solve the problem (maybe some synchronization issue in the event firing code?)
At this moment the #1 solution works fine for me.
I hope this information helps.
> Cordova fails to initialize if loading startPage from non application bundle location
> -------------------------------------------------------------------------------------
>
> Key: CB-4034
> URL: https://issues.apache.org/jira/browse/CB-4034
> Project: Apache Cordova
> Issue Type: Bug
> Components: iOS
> Affects Versions: 2.8.0
> Environment: XCode 4.6.3
> iOS, Cordova 2.8, 2.9
> Reporter: Aleksey Yashchenko
>
> When loading webview content from outside application bundle (from app Documents folder) Cordova fails to initialize correctly:
> - no deviceready event
> - some plugins are not working (e.g. Contacts plugin)
> There are several other unwanted effects, e.g. when accessign geolocation data user asked for permission twice - first time for the whole app (I assume by the system), second time for loaded page (by webview?).
> To reproduce the effect:
> - create fresh cordova project
> - built/run
> - from XCode Organized download application content bundle
> - create "Documents/www/*" folder with some tests inside (content of original www folder suits well)
> - change AppDelegate:
> {quote}
> // Set your app's start page by setting the <content src='foo.html' /> tag in config.xml.
> // If necessary, uncomment the line below to override it.
>
> self.viewController.startPage = [[NSURL fileURLWithPath:[[[MainViewController applicationDocumentsDirectory] stringByAppendingPathComponent:@"www"] stringByAppendingPathComponent:@"index.html"]] absoluteString];
> self.viewController.wwwFolderName = [self.viewController.startPage stringByDeletingLastPathComponent];
> {quote}
> - see successful page load event in console log:
> {quote}
> ...Resetting plugins due to page load.
> 2013-06-27 21:54:13.329 HelloWorld[6483:907] Finished load of: file:///var/mobile/Applications/78E63640-C185-401A-9FEE-9B325F8B9881/Documents/www/index.html
> {quote}
> - deviceready event is not there
--
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