web-dev-qa-db-fra.com

Comment configurer le projet de plugin Cordova avec le support IDE?

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?

36
CarlLee

Développer un plugin Cordova est un peu pénible.

Voici une façon de procéder:

  1. Créez les fichiers de base de votre plugin (plugin.xml fichier, .Java fichier pour Android, .h et .m fichiers pour iOS) dans un dossier séparé pour votre plugin
  2. Fournissez dans votre plugin.xml ce qui est nécessaire pour installer le plugin
  3. Installez votre plugin dans votre application Cordova: cordova plugin add /path/to/pugin
  4. Construisez les plateformes que vous souhaitez développer votre plugin. 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.)"

    1. Ouvrez la Project fenêtre d'outils: Affichage> Fenêtres d'outils> Projet , ou  + 1
    2. Ouvrez votre fichier de classe de plugin situé dans: Android> Java> com.your.plugin> YourPlugin
  • iOS: 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.

37
Niko

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.
13
anty

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:

enter image description here

1
adnbsr

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.

1
webmak10

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.

1
Bruno Ranschaert