Phonegap deviceready pas de tir à l'aide de Cordova 2.2.0 dans iOS
Je suis la construction d'une Application PhoneGap. Malheureusement, lors du déploiement pour les appareils iOS et les simulateurs les deviceready
événement se déclenche jamais. Je suis l'aide de Phonegap 2.2.0.
Quand j'déployer le même code pour Android (à l'aide de l'Android, cordova.js
fichier de cours) l'Application fonctionne parfaitement.
Lorsque je remplace le deviceready
avec un jQuery-ready()
l'application de la charge sur iOS en tant que bien, mais il sera alors le manque d'accès à l'appareil des Api spécifiques.
La cordova.js
est chargé que je vais voir un simple message d'alerte que j'ai mis dedans, mais deviceready
jamais les incendies et les Api ne sont jamais exposés.
Mon Format Html head
:
<script type="text/javascript" charset="utf-8" src="js/cordova.js"></script> <!-- yes it is the iOS version -->
<script src="js/jquery-1.8.2.min.js"></script>
<script src="js/app.js"></script>
Mon JS:
function doStuff(){
//app functionality
}
document.addEventListener('deviceready', doStuff, false);
Mais en quelque sorte de choses se sont réalisées sur Android...
Vous devez vous connecter pour publier un commentaire.
dans mon html j'ai un onload qui déclenche que l'ajout d'un écouteur d'événement à deviceready
addEventListener
méthode devrait être disponible à partir de début ainsi qu'document
, n'est-ce pas? Avez-vous une explication pour ce comportement?À ajouter à olore la réponse que j'ai fini par utiliser l'approche que le code dans le projet par défaut (qui est construite à partir de la
./create
script) utilise (qui est différent du code de la Événement docs).Les principales différences sont (je ne sais pas vraiment lequel de ces fait sont à prendre en compte):
cordova-2.2.0.js
est situé dans le dossier racine<script>
s sont inclus juste avant la fermeture</body>
-tag et pas dans le document dehead
deviceready
-manipulation des ouvrages comme:La dernière
<script>
balise juste des appelsapp.initialize()
Cela semble fonctionner assez bien sur iOS et Android et est un peu plus compréhensible pour moi que le double gestionnaire de nidification de la documentation.
Il semble faire une différence si vous ajoutez le deviceready auditeur avant ou après la cordova.js:
Je n'étais pas en mesure de trouver toute la documentation sur ce sujet, mais cordova.js intercepte les appels à la méthode addEventListener + removeEventListener et uniquement les appels deviceready des rappels de ce qui a été ajouté avant cordova.js.
Solution dans mon cas était juste pour réorganiser le script de commande:
J'ai découvert que si vous avez accidentellement inclure la cordova.js scénario deux fois, puis le deviceready ne se déclenche pas.
J'ai eu le même problème. Je l'ai eu à travailler par l'ajout de l'appareil plugin.
À vérifier: