From aa8eed5b44c082654ab4ec4eef3dd60ddb569e4c Mon Sep 17 00:00:00 2001 From: Slava Kim Date: Thu, 2 Oct 2014 13:52:00 -0700 Subject: [PATCH] For mobile autoupdate wait for both events to happen: (deviceready, DOMContentLoaded) Use the fixed cordova-update --- packages/meteor-platform/package.js | 2 +- packages/meteor/startup_client.js | 14 ++++++++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/packages/meteor-platform/package.js b/packages/meteor-platform/package.js index bca25194cf..19f9d4c941 100644 --- a/packages/meteor-platform/package.js +++ b/packages/meteor-platform/package.js @@ -68,5 +68,5 @@ Package.on_use(function(api) { Cordova.depends({ 'org.apache.cordova.device': '0.2.11', - 'com.meteor.cordova-update': 'https://github.com/meteor/com.meteor.cordova-update/tarball/587af6eb67f8f3994309e17a90e8694b93ad47fe' + 'com.meteor.cordova-update': 'https://github.com/meteor/com.meteor.cordova-update/tarball/31640d593ac99012cd7670295ebbec40ffa7f3f0' }); diff --git a/packages/meteor/startup_client.js b/packages/meteor/startup_client.js index dacc251a8a..7c88ee434e 100644 --- a/packages/meteor/startup_client.js +++ b/packages/meteor/startup_client.js @@ -2,15 +2,25 @@ var queue = []; var loaded = !Meteor.isCordova && (document.readyState === "loaded" || document.readyState == "complete"); +var awaitingEventsCount = 1; var ready = function() { + awaitingEventsCount--; + if (awaitingEventsCount > 0) + return; + loaded = true; while (queue.length) (queue.shift())(); }; if (document.addEventListener) { - var event = Meteor.isCordova ? 'deviceready' : 'DOMContentLoaded'; - document.addEventListener(event, ready, false); + document.addEventListener('DOMContentLoaded', ready, false); + + if (Meteor.isCordova) { + awaitingEventsCount++; + document.addEventListener('deviceready', ready, false); + } + window.addEventListener('load', ready, false); } else { document.attachEvent('onreadystatechange', function () {