Si un plugin phonegap être déclarée dans la config.xml fichier?
Je suis un newbie dans le développement phonegap j'ai donc quelques questions:
1) je suis l'aide de l'accéléromètre de plug-in. J'ai lu dans le manuel que j'ai besoin de déclarer le plugin dans le config.xml fichier afin de l'utiliser. Cependant, j'ai remarqué que même si je l'ai supprimer de la déclaration de l'config.xml
<feature name="Accelerometer">
<param name="android-package" value="org.apache.cordova.AccelListener" />
</feature>
l'accéléromètre fonctionne toujours.
Donc je voudrais vous demander si, dans le phonegap 3.0.0 version , l'utilisation de la config.xml est obsolète. Si c'est le cas alors où est la liaison a lieu?
2) j'utilise la plate-forme android pour construire l'application. Dans la structure du projet, il y a trois config.xml fichiers avec un contenu différent:
- a) Dans le assets/www/phonegap-app-hello-world-3.0.0/www/config.xml
- b) Dans le assets/www/phonegap-app-hello-world-3.0.0/config.xml
- c) Dans le res/xml/config.xml
Ce que l'utilisation de chacun d'eux ? D'où, je suppose, de déclarer mes plug in? Je l'ai fait dans le res/xml/config/fichier xml
Merci
- res/xml/config.xml
Vous devez vous connecter pour publier un commentaire.
Je suis sûr que la raison que vous pouvez toujours utiliser le plugin est parce que vous avez modifiés le mauvais
config.xml
ou de ne pas exécuter l'cordova outils de ligne de commande pour propager vos modifications à la bonneconfig.xml
fichier qui est utilisé par l'application.Il y a plusieurs
config.xml
fichiers à différents endroits dans un Cordova 3.x projet. Je vais essayer de vous donner une vue d'ensemble des différents emplacements des fichiers et comment vous devez interagir avec eux. Gardez à l'esprit que c'est ce qui arrive lorsque vous utilisez la CLI (Ligne de commande-interface) - j'ai généré cette structure de répertoire en tapant:Ou avant Cordova 3.1, remplacer la dernière ligne avec:
Si vous utilisez la plate-forme au niveau des scripts shell pour construire l'application (le "vieux" de façon que nous l'avons fait dans Cordova 2.X), vous pouvez généralement utiliser le même flux de travail, mais doivent Utilisation Plugman pour Gérer les Plugins. (Nous sommes dans le processus de la documentation de ces deux "flux de travail".)
Tout d'abord, lorsque vous créez une application avec
cordova create MyApp
, il faudra créer un projet vide de la structure comme ceci:Vous devez faire toutes vos modifications de fichiers dans
/www/
, qui est le "cross platform" code source. Tout ce qui est dans ce dossier obtiendrez généralement copiés et propagées à niveau la plate-formewww
dossier lorsque vous utilisez les outils de ligne de commande (si sa/assets/www
pour Android ou tout simplement/www/
pour iOS). De cette façon, vous avez seulement besoin d'un seul dossier source de votre application - c'est le dossier que vous devriez avoir sous contrôle de version. N'importe quelle application à l'échelle de modifications de configuration que vous voulez doit être faite à l'config.xml
fichier placé à cet endroit; plus tard, lorsque vous utilisez les outils, ceconfig.xml
fichier sera copié (et parfois modifiées avec plate-forme des informations de configuration spécifiques) à l'endroit le plus approprié pour chaque application, comme/platforms/android/res/xml/config.xml
(pour android) ou/platforms/ios/AppName/config.xml
(pour iOS).Dites que vous voulez ajouter à l'accélération plugin en tapant
cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-network-information.git
.Si vous exécutez une diff après cette commande, vous verrez les fichiers suivants ont été modifiés ou ajoutés:
plugins/org.apache.cordoue.le réseau de l'information/
- Ce dossier contient tous les plugin meta information et de code, y compris le web et le code natif, pour chaque plate-forme supportée
plugins/android.json et plugins/ios.json
- Ces deux dossiers ont été édités maintenant contenir une référence au réseau de l'information plugin. C'est là que vous verrez le fichier config-munge peu de JSON. Lorsque vous ajoutez plus de plugins, ce fichier va croitre de faire référence à tous d'entre eux. Ce fichier indique les outils de ligne de commande ce code, il doit le remplacer et dans lequel les fichiers. Par exemple, après l'ajout de l'cordova-plugin-réseau-informations plugin, vous verrez cela dans
/plugins/android.json
:Ceci dit l'scripts à écrire le nom de la fonction dans
res/xml/config.xml
(encore une fois, pour iOS, ce sera différent, puisque l'application au niveau du fichier de config est dans un emplacement différent sur iOS!), et aussi raconte à écrire android.la permission.ACCESS_NETWORK_STATE autorisation en AndroidManifest.xml (vous ne trouverez rien de ce genre sur iOS depuis aucune autorisation n'est nécessaire). (En passant, ce qui est écrit sur chacun de ces fichiers json est définie dans le plugin plugin.xml fichier.)platforms/android/AndroidManifest.xml
- Les outils CLI a pris soin d'ajouter selon la permission ont été définis dans le plugin xml du fichier à AndoridManifest. Oui, cela se produit lorsque vous ne
cordova plugin add
. Ces autorisations sont directement copiés à partir de ce qui est dans le plugins/android.fichier json. Ces autorisations sont également supprimés lorsque vous 'rm' un plugin. Toutefois, l'édition de ces fichiers est effectué intelligenty, que vous pouvez ajouter des choses à AndroidManifest.xml et ils continuent.platforms/android/assets/www/cordova_plugins.js
- Ce fichier est enterré à l'intérieur du code html de ressources qui feront de votre appli finale - ces ressources (à peu près tout dans /plates-formes/) ne doit pas être modifiée par vous, car ils seront remplacés par les outils CLI assez fréquemment. Ce fichier est utilisé par Cordova au moment de l'exécution pour charger le plugin code que vous avez ajouté; il s'occupe aussi de la cartographie du JavaScript espaces de noms pour les fichiers réels (c'est le "clobbers" déclaration). Par exemple, je vois:
cela signifie que dans votre code d'application,
navigator.connection
etnavigator.network.connection
permettra à la fois de carte pour le code contenu dansplugins/org.apache.cordova.network-information/www/network.js
.platforms/android/res/xml/config.xml
- C'est le niveau plate-forme config.xml de fichiers pour Android. Ce fichier est créé par les outils CLI. Beaucoup de l'information que vous écrivez dans votre top niveau config.xml (/MyApp/www/config.xml) est copiée ici, mais pas à tous (et il y a plus de trucs, je ne suis pas sûr de savoir exactement où les autres choses vient de.) C'est ce fichier qui est lu par Android quand il est en cours d'exécution de votre application et il a besoin de vérifier votre configuration de données. Par exemple, Cordova code Android vont l'utiliser pour voir quels plugins sont installés et qui classes natives de la carte à laquelle les espaces de noms. Je pense la seule façon que vous pouvez modifier à l'aide de /fusions/dossier que j'ai mentionné ci-dessus.
plates-formes/ios/{Nom}.xcodeprojcj/projet.pbxproj
- Le iOS équivalent de AndroidManifest.xml
plates-formes/ios/{Nom}/config.xml
- C'est le niveau plate-forme config.xml fichier pour iOS. Voir comment il est dans un endroit différent que sur Android? (par exemple, pas dans /res/xml/config.xml?) Ce fichier est automatiquement mise à jour par l'interface CLI et vous ne devriez pas toucher.
platforms/ios/www/cordova_plugins.js
- Le même fichier existe sur Android (mais dans un autre endroit) et a le même but: aider à Cordoue en charge vos plugins lors de l'exécution lorsque quelqu'un est à l'aide de l'application
Je pense que c'est à peu près décrit tous les fichiers et dossiers qui sont utilisés dans un projet cordova.
Espérons maintenant vous pouvez voir que vous ne conviendrait en fait de l'édition de la
/www/config.xml
fichier. Ce fichier sera utilisé pour construire le/platforms/android/res/xml/config.xml
et/platforms/ios/{AppName}/config.xml
, qui sont utilisés par Cordova lorsque le emballés application est en cours d'exécution. Des parties de ce fichier sera utilisé pour modifier le AndroidManifest.xml et le projet.pbxprojc fichiers (pour Android et iOS, respectivement.)C'est ce qui explique pourquoi vous êtes toujours en mesure d'utiliser l'accéléromètre de votre application, même après la suppression de la
<feature name="Accelerometer">
lignes - ils étaient juste être recopiée dans la plate-forme de niveau config.xml à partir de l'application principale de large config.xmlJe suppose que la seule chose à comprendre, c'est comment vous pouvez modifier la plate-forme des fichiers de configuration spécifiques; par exemple, comment pouvez-vous modifier le AndroidManifest.xml fichier? Eh bien, il s'avère que vous pouvez simplement modifier les
/platforms/android/AndroidManifest.xml
fichier directement la ligne de commande est assez intelligent pour ne pas effacer vos personnalisations lorsqu'il ajoute automatiquement ou supprime le plugin permissions. Donc, dire que pour une raison quelconque vous avez besoin à l'appui d'une baisse de la version d'Android que ce Cordova prend en charge, il vous suffit de modifier l'objet et elle persiste si votrecordova plugin add|rm {id}
appels.J'espère que clarifie les choses, n'hésitez pas à poser plus de questions!
/www/config.xml
fichier est maintenant déplacé vers le répertoire racine/config.xml
dans le dernier Cordova 3.4.0-0.1.3AndroidManifest.xml
fichier directement dans le/config.xml
fichier, et les changements soient automatiquement ajoutés à AndroidManifest.xml sur le fait de faire uncordova platform add android
?cordova prepare
et il NE remplacez tout ce que j'ai dans mon androidManifest.xml, alors quel est le moyen de contourner cela?cordova plugin add ...
il ne marche pas à l'ajouter à vos config.xml. Si vous êtes à l'aide de Phonegap build, il s'attend à ce<gap:plugin>
balises dans votre global config.xml et vous devez les ajouter manuellement, aussi loin que je peux voir. Lire docs.build.phonegap.com/en_US/configuring_plugins.md.htmlDepuis cordova 3.5, nous pouvons persister plugins dans
config.xml
fichierLa commande suivante va chercher les plugins définis dans config.xml
La commande suivante va écrire votre plugins installés dans config.xml (3.5):
En 5.x et plus tard:
Source: http://cordova.apache.org/news/2014/07/10/tools-release.html
Depuis Cordova 5.0, oui.
Masse sauver des plugins sur un projet existant :
Sur une installation fraîche (ou après un nettoyage), vous pouvez ajouter tous les plugins avec :
Ajout /mise à jour /suppression peut également être effectuée via l'interface cli :
Il n'y a pas de mise à jour en masse pour le moment. Vous pouvez supprimer
plugins
répertoire puis exécutez une$cordova prepare
.Sources :
Config.xml est principalement utilisé par phonegap build.
Si vous êtes à l'aide de phonegap 3 vous devez gérer vos plugins à l'aide de la CLI:
Le seul config.xml vous devez modifier est /www/config.xml les autres sont automatiquement générés à partir de celui-ci lorsque vous construisez votre projet en utilisant:
Vous pouvez cocher cette case pour accelermator plugin:
Phonegap Acceleramator plugin.
Aussi, vous pouvez y effectuer une recherche sur n'importe quel plugin vous avez besoin