La réponse de @Kinjal m'a vraiment aidé à me mettre sur la bonne voie, mais j'ai dû lutter contre de nombreux problèmes de timing.
J'utilise l'événement device ready de Cordova pour lire les fichiers de données de mon application, quelques paquets JSON qui pilotent la construction de l'interface et sont chargés par défaut dans le dossier www, mais peuvent éventuellement être téléchargés depuis un serveur, pour mettre à jour la base de données de l'application.
J'ai trouvé beaucoup de problèmes parce que les structures de données de l'application n'avaient pas assez de temps pour s'initialiser avant le démarrage du routage.
J'ai fini par trouver cette solution : initialiser d'abord jQuery, appeler le gestionnaire d'événements de Cordova à la fin de l'initialisation de jQuery, appeler la routine de démarrage de l'application à la fin du dernier traitement dans l'initialisation de Cordova.
Tout ce cauchemar a commencé parce que j'avais besoin d'un moyen de lire les fichiers de modèles pour Hogan.js et que je ne pouvais pas les lire avec le protocole de fichier et un simple XHR.
Comme ça :
$(document).ready(function () {
...
// are we running in native app or in a browser?
window.isphone = false;
if (document.URL.indexOf('http://') === -1 && document.URL.indexOf('https://') === -1) {
window.isphone = true;
}
if (window.isphone) {
document.addEventListener('deviceready', onDeviceReady, false);
} else {
onDeviceReady();
}
});
function onDeviceReady() {
function readFromFile(fileName, cb) {
// see (https://www.neontribe.co.uk/cordova-file-plugin-examples/)
}
...
readFromFile(cordova.file.applicationDirectory + 'www/views/tappa.html', function (data) {
app.views.lastview = data;
app.start();
});
}
0 votes
Même type de problème dans l'application phonegap Android. Mais iOS va bien. Dans mon application, les blocs ne clignotent pas en cas d'appui rapide sur le bouton de démarrage [parfois seulement] !