J'ai eu du mal à mettre en place mon projet de plugin cordova. Principalement en raison des faits suivants:
Les plugins doivent être dans un dossier séparé loin du projet principal
Lorsque j'utilise, par exemple, cordova build Android
pour construire le projet, cordova copie le fichier Java de mon dossier de plugins et le place dans platforms/Android/src
dossier.
Ainsi, je ne devrais pas modifier le fichier .Java de mon plugin dans le projet Android manuellement, je dois écrire mon code dans mon dossier de plugins.
Mais je ne peux pas importer le dossier du plugin dans le projet IDE, donc je n'ai pas de code complet.
Il est fondamentalement impossible d'écrire Java/Objective-C sans le support IDE
Comment puis-je configurer un IDE (par exemple, pour un projet Android Studio) avec complétion de code pour le développement de mon plugin?
Développer un plugin Cordova est un peu pénible.
Voici une façon de procéder:
plugin.xml
fichier, .Java
fichier pour Android, .h
et .m
fichiers pour iOS) dans un dossier séparé pour votre pluginplugin.xml
ce qui est nécessaire pour installer le plugincordova plugin add /path/to/pugin
cordova build Android
ou cordova build ios
Ensuite, pour chaque plateforme, vous devrez travailler directement sur votre plugin dans le projet construit:
Android: ouvrez avec Android Studio le projet Android Android situé dans yourCordovaAppFolder/platforms/Android
avec "Projet d'importation (Eclipse ADT, Gradle, etc.)"
Project
fenêtre d'outils: Affichage> Fenêtres d'outils> Projet , ou ⌘ + 1iOS: ouvrez avec Xcode le projet iOS construit situé dans yourCordovaAppFolder/platforms/ios
Dans Xcode, vos fichiers de classe de plugin se trouvent dans le dossier Plugins
Vous pouvez ensuite développer et tester directement votre plugin pour chaque plate-forme sans avoir à le réinstaller encore et encore et encore ... il suffit d'exécuter le projet à partir de Android Studio/Xcode, et ne réinstallez pas votre plugin, cela effacera ce que vous avez fait dans le projet .
Lorsque vous pensez que vos développements sont terminés (ou quand vous le souhaitez), remplacez le ou les fichiers de plug-in dans le dossier de plug-in d'origine créé à la toute première étape, par celui du projet sur lequel vous développiez.
MODIFIER:
J'ai découvert qu'Eclipse a fait une mise à jour l'été dernier, Eclipse Mars (4.5) qui inclut Thym (Les outils mobiles HYbrid).
Si nécessaire, ils ont un page du projet Github .
Je l'ai rapidement testé, il permet de créer des projets Cordova, d'ajouter facilement des plugins, et de s'exécuter directement sur la plateforme souhaitée (Android, iOS).
Microsoft a également créé une version gratuite de Visual Studio pour Apache Cordova , mais je ne l'ai pas testée.
En ce qui concerne Eclipse avec Thym, ma première conclusion rapide est qu'il est pratique de développer des applications Cordova mais ne sera pas LA solution ultime pour développer des plugins Cordova car il n'est pas orienté de cette façon et n'a pas été conçu pour les plugins mais pour la création d'applications (et c'est probablement la même chose pour Visual Studio pour Apache Cordova).
Au fait, j'ai eu du mal à lancer le simulateur iOS avec Eclipse + Thym, alors peut-être qu'il a encore besoin d'améliorations même s'il a déjà l'air bien.
La solution que j'ai tendance à utiliser suit celle décrite par Niko dans la réponse acceptée. Cependant, j'ajoute l'indicateur --link lors de l'ajout du plugin:
cordova plugin add --link ../cordova-plugin-example
qui (au moins sur Mac et probablement Linux) crée des liens symboliques vers le répertoire du plugin au lieu de le copier. Ensuite, éditer les fichiers du plugin dans le projet Android dans 'plates-formes/Android' avec Android Studio modifie en fait les fichiers dans le répertoire du plugin. Cela permet de garder le répertoire du plugin séparé (et sous son propre contrôle de version). Et la suppression et l'ajout du plugin ne devraient pas - au moins théoriquement - ne pas perdre les modifications apportées au plugin.
L'approche devrait fonctionner également pour les plugins iOS.
Attention, je n'ai aucune idée si ou comment --link fonctionne sur les machines Windows.
Astuce: j'ai trouvé cette option dans l'aide:
cordova help plugin
qui donne:
[...] [--link] ... when installing from a local path, creates a symbolic link to the plugin instead of copying files. The extent to which files are linked vs copied varies by platform. Useful for plugin development.
Il existe une solution beaucoup plus simple pour Android Studio et plug-in Cordova: après avoir ajouté la plateforme Android, cordova crée un projet Android sous plateformes/Android et vous pouvez créer le dossier du plugin cordova sous projet Android et ajouter une fois le plugin au projet avec la commande. Donc, vous n'avez pas besoin d'en utiliser un autre pour Java. Comme je l'ai dit, il y aura deux mêmes fichiers Java:/src et/PluginDevelopmentFolder. cordova build Android
ne manipule aucun fichier Java. J'ai ajouté fileTree pour confirmer:
lire ceci https://cordova.Apache.org/docs/en/Edge/guide_appdev_hooks_index.md.html
J'utilise NetBeans IDE sur Debian Jessie. (NetBeans est le meilleur IDE pour moi, utilisez-le pour QT, PHP et maintenant Cordova. Mais il utilise beaucoup) de RAM.)
Après avoir appuyé sur le bouton de génération, mon script Shell supprime, installe et exécute l'application nouvellement créée dans VirtualBox (en utilisant adb). Je ne déplace pas les plugins vers un autre répertoire car je n'en ai pas besoin, mais vous pouvez définir votre répertoire et placer manuellement le plugin, puis inclure le plugin à l'aide d'un script.
Je voudrais suggérer un autre flux de travail pour le développement de plugins Cordova. Son approche est similaire aux workflows déjà mentionnés précédemment, à la différence près que j'aime avoir un projet indépendant pour maintenir + tester + déboguer le code du plugin sans avoir besoin d'une application de test distincte.
Le contour du flux de travail ressemble à ceci.
Step 1 - Prepare the Cordova platform.
1.1 Download Android release cordova-Android-x.y.z.Zip of the version you want from the github source site:
https://github.com/Apache/cordova-Android
1.2. Expand the archive, go to framework/ directory
1.3. create a local.properties file with contents: 'sdk.dir=/opt/Android-sdk'
Adjust the path so that it points to the location of the Android SDK on your machine.
1.4. Execute: 'ant jar'
The result is a cordova-x.y.z.jar
Step 2 - Create/test the plugin with IDE support.
2.1. Create an empty Android project using Android Studio.
2.2. Copy the cordova-x.x.x.jar to the app/libs directory of your project.
2.3. Create the plugin code + unit tests (you have code completion and can build the code using the unit tests).
2.4. OPTIONAL If necessary you can add a webview and test the code inside the webview as described here
https://cordova.Apache.org/docs/en/latest/guide/platforms/Android/webview.html
Step 3 - Package plugin files.
3.1. Create a plugin project with plugman.
3.2. Copy the files from the development project into the plugin project
3.3. Deploy and reuse.
La dernière étape 3 a pu être automatisée, personnellement je n'ai jamais pu faire ça.