Spécification des plugins
Le fichier plugin.xml
est un document XML dans l'espace plugins
: http://apache.org/cordova/ns/plugins/1.0
. Il contient un élément de niveau supérieur plugin
qui définit le plugin, et les enfants qui définissent la structure du plugin.
Un échantillon d'élément de plugin:
<?xml version="1.0" encoding="UTF-8"?>
<plugin xmlns="http://apache.org/cordova/ns/plugins/1.0"
xmlns:android="http://schemas.android.com/apk/res/android"
id="com.alunny.foo"
version="1.0.2">
plugin Élément
L'élément plugin
est l'élément de niveau supérieur du manifeste du plugin. Il comporte les attributs suivants:
xmlns
(obligatoire): l'espace de noms plugin,http://apache.org/cordova/ns/plugins/1.0
. Si le document contient du code XML d'autres espaces de noms, tels que les étiquettes à ajouter à laAndroidManifest.xml
fichier, ces espaces de noms doivent également être inclus dans l'élément de niveau supérieur.id
(obligatoire): un revers-domaine de style comme identificateur pour le plugin,com.alunny.foo
version
(obligatoire): un numéro de version pour le plugin, ce qui correspond à l'expression régulière suivante du style majeur-mineur-patch :^\d+[.]\d+[.]\d+$
Éléments moteurs et moteurs
Les éléments enfants de le <engines>
élément spécifier les versions de cadres basé sur Apache Cordova qui prend en charge de ce plugin. Un exemple :
<engines>
<engine name="cordova" version="1.7.0" />
<engine name="cordova" version="1.8.1" />
<engine name="worklight" version="1.0.0" platform="android" scriptSrc="worklight_version"/>
</engines>
Semblable à la <plugin>
de l'élément version
attribut, la chaîne de version spécifiée doit correspondre à une chaîne de majeur-mineur-patch conforme à l'expression régulière :
^\d+[.]\d+[.]\d+$
Éléments de moteur peuvent également spécifier fuzzy matches pour éviter les répétitions et à réduire la maintenance mise à jour de la plate-forme sous-jacente. Outils doivent supporter un minimum de >
, >=
, <
et <=
, par exemple :
<engines>
<engine name="cordova" version=">=1.7.0" />
<engine name="cordova" version="<1.8.1" />
</engines>
Le <engine>
tags possède aussi un support par défaut pour toutes les principales plates-formes Cordova existe sur. En spécifiant le cordova
tag moteur signifie que l'attribut de version du moteur doivent satisfaire à toutes les versions de Cordova sur n'importe quelle plateforme. Vous mai également la liste des plates-formes spécifiques et leurs versions afin de substituer le fourre-tout cordova
moteur :
<engines>
<engine name="cordova" version=">=1.7.0" />
<engine name="cordova-android" version=">=1.8.0" />
<engine name="cordova-ios" version=">=1.7.1" />
</engines>
Voici une liste des moteurs par défaut qui prend en charge la balise < engine >
:
-
cordova
-
cordova-plugman
-
cordova-amazon-fireos
-
cordova-android
-
cordova-ios
-
cordova-blackberry10
-
cordova-wp8
-
cordova-windows8
-
android-sdk
// returns the highest Android api level installed -
apple-xcode
// returns the xcode version -
apple-ios
// returns the highest iOS version installed -
apple-osx
// returns the OSX version -
blackberry-ndk
// returns the native blackberry SDK version
En spécifiant des cadres personnalisés basé sur Apache Cordova doivent figurer sous la balise de moteur comme suit :
<engines>
<engine name="my_custom_framework" version="1.0.0" platform="android" scriptSrc="path_to_my_custom_framework_version"/>
<engine name="another_framework" version=">0.2.0" platform="ios|android" scriptSrc="path_to_another_framework_version"/>
<engine name="even_more_framework" version=">=2.2.0" platform="*" scriptSrc="path_to_even_more_framework_version"/>
</engines>
Un cadre basé sur Apache Cordova personnalisé requiert qu'un élément du moteur inclut les attributs suivants : name
, version
, scriptSrc
, etplatform
.
name
(obligatoire): un nom explicite pour votre cadre personnalisé.version
(obligatoire): la version que votre cadre doit avoir pour installer.scriptSrc
(obligatoire): le fichier de script qui indique à quelle version du cadre personnalisé est plugman. Idéalement, ce fichier doit être dans le répertoire de niveau supérieur de votre répertoire de plugin.platform
(obligatoire): quelles plates-formes qui prend en charge votre cadre. Vous pouvez utiliser le caractère générique*
à dire prise en charge pour toutes les plates-formes, spécifiez plusieurs avec un caractère pipe commeandroid|ios|blackberry10
ou juste une seule plate-forme commeandroid
.
plugman abandonne avec un code différent de zéro pour n'importe quel plugin dont le projet cible ne satisfait pas aux contraintes du moteur.
Si non <engine>
les balises sont spécifiées, plugman essaye de s'installer dans le répertoire de projet spécifié cordova aveuglément.
nom Élément
Un nom lisible par l'homme pour le plugin, dont le contenu texte contient le nom du plugin. Par exemple :
<name>Foo</name>
Cet élément n'est pas (encore) traité par la localisation.
description Élément
Une description explicite pour le plugin. Le contenu textuel de l'élément contient la description du plugin. Un exemple :
<description>Foo plugin description</description>
Cet élément n'est pas (encore) traité par la localisation.
auteur Élément
Nom de l'auteur du plugin. Le contenu textuel de l'élément contient le nom de l'auteur du plugin. Un exemple :
<author>Foo plugin description</author>
Mots-clés Élément
Plugin Mots-clés. Le contenu textuel de l'élément contient des mots-clés séparés par des virgules pour décrire le plugin. Un exemple :
<keywords>foo,bar</keywords>
licence Élément
Licence de plugin. Le contenu textuel de l'élément contient la licence de plugin. Un exemple :
<license>Apache 2.0 License</license>
asset Élément
Un ou plusieurs éléments listant les fichiers ou dossiers copier dans le répertoire d'une application Cordova www
. Exemples :
<!-- a single file, to be copied in the root directory -->
<asset src="www/foo.js" target="foo.js" />
<!-- a directory, also to be copied in the root directory -->
<asset src="www/foo" target="foo" />
Tous les balises <asset>
requièrent les attributs src
et target
. Les plugins Web contient la plupart du temps les éléments <asset>
. Tout les éléments <asset>
qui sont imbriqués dans les éléments <platform>
précisent les plates-formes web, tel que décrit ci-dessous. Les attributs incluent:
src
(obligatoire): emplacement du fichier ou du répertoire dans le package plugin, par rapport au documentplugin.xml
. Si un fichier n'existe pas à l'emplacement spécifiésrc
, plugman s'arrête et inverse le processus d'installation, émet un avis au sujet du conflit et se termine avec un code différent de zéro.target
(required):Où le fichier ou le répertoire doit se trouver dans l'application de Cordova, relatif au répertoire
www
. Actifs peuvent être ciblées vers les sous-répertoires, par exemple :<asset src="www/new-foo.js" target="js/experimental/foo.js" />
crée le répertoire
js/experimental
dans le répertoirewww
, sauf si déjà présenter, puis copie le fichier de lanew-foo.js
et le renommefoo.js
. Si un fichier existe déjà à l'emplacement cible, plugman s'arrête et inverse le processus d'installation, émet un avis au sujet du conflit et se termine avec un code différent de zéro.
JS-module Élément
La plupart des plugins comprennent un ou plusieurs fichiers JavaScript. Chaque <js-module>
balise correspond à un fichier JavaScript et empêche les utilisateurs du plugin de devoir ajouter un <script>
tag pour chaque fichier. Alors que <asset>
étiquettes il suffit de copier un fichier dans le sous-répertoire plugin dans www
, <js-module>
tags sont beaucoup plus sophistiqués. Ils ressemblent à ceci :
<js-module src="socket.js" name="Socket">
<clobbers target="chrome.socket" />
</js-module>
Lors de l'installation d'un plugin avec l'exemple ci-dessus, socket.js
est copié dans www/plugins/my.plugin.id/socket.js
, et ajouté comme une entrée à www/cordova_plugins.js
. Au moment du chargement, le code dans cordova.js
utilise XHR pour lire chaque fichier et y injecter une balise en HTML <script>
. Il ajoute un mappage pour écraser ou fusionner le cas échéant, tel que décrit ci-dessous.
Do Not encapsule le fichier avec cordova.define
, qui est ajouté automatiquement. Le module est encapsulé, avec module
, exports
, et require
dans le champ d'application, comme il est normal pour les modules d'AMD.
Informations relatives au tag <js-module>
:
La
src
fait référence à un fichier dans le répertoire plugin relatif au fichierplugin.xml
.Le
name
donne la dernière partie du module. Il peut généralement être quelque que vous aimez et il les questions si vous voulez utilisercordova.require
pour importer les autres parties de vos plugins dans votre code JavaScript. Le nom du module pour un< js-module >
est de votre pluginid de
suivi de la valeur duname
. Pour l'exemple ci-dessus, avec unid
dechrome.socket
, le nom du module estchrome.socket.Socket
.Trois balises sont autorisées dans les
< js-module >
:-
< clobbers target="some.value"/ >
indique que l'module.exports
est inséré dans l'objetwindow
commewindow.some.value
. Vous pouvez avoir autant< clobber >
que vous le souhaitez. Tout objet non disponible surwindow
est créé. -
<merges target="some.value"/>
indique que le module devrait fusionner avec n'importe quelle valeur existant dewindow.some.value
. Si une clé existe déjà, la version du module remplace l'original. Vous pouvez avoir autant< fusionne >
que vous le souhaitez. Tout objet non disponible surwindow
est créé. -
<runs/>
signifie que votre code doit être spécifié aveccordova.require
, mais pas installé sur l'objetwindow
. Ceci est utile lors de l'initialisation du module, y attacher des gestionnaires d'événements ou dans le cas contraire. Vous ne pouvez avoir plus d'une balise<runs/>
. Notez qu'inclure un<runs/>
avec<clobbers/>
ou<merges/>
est superflue, car ils ont aussi le modulecordova.require
. - Un vide
< js-module >
encore des charges et peut être consulté dans d'autres modules viacordova.require
.
-
Si src
ne pointe pas vers un fichier existant, plugman s'arrête et annule l'installation, prévient du problème, puis quitte avec un code différent de zéro.
Les éléments d'imbrication <js-module>
dans <platform>
déclare des liaisons de module JavaScript spécifique à la plateforme.
dependancy Élément
La balise <dependency>
permet de spécifier les autres plugins dont dépend le plugin actuel. Tandis que les versions futures puiseront eux dans les dépôts de plugin, à court terme les plugins sont directement référencés en tant qu'URL par la balise <dependency>
. Ils sont mis en forme comme suit :
<dependency id="com.plugin.id" url="https://github.com/myuser/someplugin" commit="428931ada3891801" subdir="some/path/here" />
id
: fournit l'ID du plugin. Il doit être unique au monde et exprimée dans le style de revers-domaine. Bien qu'aucune de ces restrictions est appliquée actuellement, qu'ils soient à l'avenir.url
: Une URL pour le plugin. Cela devrait faire référence à un dépôt git, que plugman tente de clôner.validation
: il s'agit de toute référence de git comprise pargit checkout
: un nom de succursale ou de la balise (par exemple,maître
,0.3.1
) ou un hachage de validation (p. ex.,975ddb228af811dd8bb37ed1dfd092a3d05295f9
).subdir
: Spécifie la dépendance du plugin ciblée comme un sous-répertoire du dépôt git. Ceci est utile car elle permet le référentiel contenir plusieurs plugins liés, chacun spécifié individuellement.
À l'avenir, des versions contraintes seront mis en place, et un dépôt de plugin existera pour prendre en charge la recherche par nom au lieu de l'URL explicite.
Chemins de Dépendance relatifs
Si vous définissez l'url
d'une balise <dependency>
avec "."
et que vous indiqué une subdir
, le plugin dépendant est installé dans le même dépôt git local ou distant que le plugin parent qui est spécifié par la balise <dependency>
.
Notez que les subdir
spécifie toujours un chemin d'accès relatif au dépôt git racine, pas le plugin parent. Cela est vrai même si vous avez installé le plugin avec un chemin d'accès local. Plugman trouve la racine du dépôt git et recherche ensuite d'autre plugin à partir de là.
plateform Élément
La balise <platform>
identifie les plates-formes qui sont associées à du code natif ou nécessitant des modifications à leurs fichiers de configuration. Les outils utilisant cette spécification peuvent identifier les plates-formes prises en charge et installer le code dans les projets Cordova.
Les plugins sans balise <platform>
sont supposées être en JavaScript uniquement et donc installable sur toutes les plates-formes.
Un échantillon de balise de plate-forme:
<platform name="android">
<!-- android-specific elements -->
</platform>
<platform name="ios">
<!-- ios-specific elements -->
</platform>
L'attribut obligatoire name
identifie la plate-forme pris en charge, associant les éléments enfants à cette plate-forme.
Les noms de plate-forme doivent être en minuscules. Les noms de plate-forme, sont arbitrairement choisis, parmis:
- Amazon-fireos
- androïde
- blackberry10
- iOS
- wp8
- windows8
fichier source Élément
Le <source-file>
élément identifie le code source exécutable qui doit être installé dans un projet. Exemples :
<!-- android -->
<source-file src="src/android/Foo.java"
target-dir="src/com/alunny/foo" />
<!-- ios -->
<source-file src="src/ios/CDVFoo.m" />
<source-file src="src/ios/someLib.a" framework="true" />
<source-file src="src/ios/someLib.a" compiler-flags="-fno-objc-arc" />
Il prend en charge les attributs suivants :
src
(obligatoire): emplacement du fichier par rapport àplugin.xml
. Si le fichier dusrc
est introuvable, plugman s'arrête et inverse de l'installation, émet un avis sur le problème et se termine avec un code différent de zéro.target-dir
: un répertoire dans lequel les fichiers doivent être copiés, relatif à la racine du projet Cordova. Dans la pratique, c'est plus important pour les plates-formes Java, où un fichier dans le packagecom.alunny.foo
doit se trouver dans le répertoirecom/alunny/foo
. Pour les plates-formes où le répertoire source n'est pas important, cet attribut doit être omis.Comme avec des actifs, si la
target
d'unsource-file
serait écraser un fichier existant, plugman s'arrête et inverse de l'installation, émet un avis sur le problème et quitte avec un code différent de zéro.framework
(iOS uniquement): si elle est définie surtrue
, ajoute également le fichier spécifié en tant que structure pour le projet.compiler-flags
(iOS uniquement): Si défini, assigne les indicateurs de compilateur spécifié pour le fichier source particulière.
config-file Élément
Identifie un fichier de configuration XML pouvant être modifié, où dans ce document, la modification devrait avoir lieu, et ce qui doit être modifié.
Deux types de fichiers qui ont été testés pour modification avec cet élément sont xml
et les fichiers plist
.
L'élément config-file
vous permet seulement d'ajouter de nouveaux enfants à une arborescence de document XML. Les enfants sont des littéraux XML à insérer dans le document cible.
Exemple pour XML :
<config-file target="AndroidManifest.xml" parent="/manifest/application">
<activity android:name="com.foo.Foo" android:label="@string/app_name">
<intent-filter>
</intent-filter>
</activity>
</config-file>
Exemple pour plist
:
<config-file target="*-Info.plist" parent="CFBundleURLTypes">
<array>
<dict>
<key>PackageName</key>
<string>$PACKAGE_NAME</string>
</dict>
</array>
</config-file>
Il prend en charge les attributs suivants :
target
:Modifier le fichier et le chemin d'accès relatif à la racine du projet Cordova.
La cible peut inclure des éléments génériques (
*
). Dans ce cas, de manière récursive plugman parcourt l'arborescence du projet et utilise le premier match.Sur iOS, l'emplacement des fichiers de configuration par rapport à la racine du répertoire projet ne sait pas, donc en spécifiant une cible du
fichier config.xml
se résout encordova-ios-project/MyAppName/config.xml
.Si le fichier spécifié n'existe pas, l'outil ne tient pas compte de la modification de la configuration et continue l'installation.
parent
: sélecteur An XPath qui référence le parent des éléments à ajouter au fichier config. Si vous utilisez les sélecteurs absolues, vous pouvez utiliser un caractère générique (*
) pour spécifier l'élément racine, par exemple,/ * / plugins
.Pour les fichiers
plist
, leparent
détermine sous quelle clé parente du XML spécifié doit être inséré.Si le sélecteur ne résout pas à un enfant du document spécifié, l'outil s'arrête et inverse le processus d'installation, émet un avertissement et se termine avec un code différent de zéro.
after
: une liste de priorités de frères et sœurs acceptées après lequel ajouter l'extrait de code XML. Utile pour spécifier des modifications dans les fichiers nécessitant un ordre strict d'éléments XML comme http://msdn.microsoft.com/en-us/library/windowsphone/develop/ff769509%28v=vs.105%29.aspx#BKMK_EXTENSIONSelement
La plate-forme de Windows prend en charge deux attributs supplémentaires (tous deux en option) en affectant le Meta-nom package.appxmanifest
:
L'attribut device-target
indique que le ne devrait être inclus lors de la construction pour le type de périphérique cible spécifié. Valeurs prises en charge sont win
, phone
ou all
.
L'attribut versions
indique que manifestes d'application pour des versions spécifiques de Windows devraient seulement être modifiés pour les versions qui correspondent à la chaîne de version spécifiée. Valeur peut être n'importe quelle chaîne de gamme version sémantique nœud valide.
Exemples d'utilisation de ces attributs spécifiques de Windows :
<config-file target="package.appxmanifest" parent="/Package/Capabilities" versions="<8.1.0">
<Capability Name="picturesLibrary" />
<DeviceCapability Name="webcam" />
</config-file>
<config-file target="package.appxmanifest" parent="/Package/Capabilities" versions=">=8.1.0" device-target="phone">
<DeviceCapability Name="webcam" />
</config-file>
L'exemple ci-dessus va définir pré-8.1 plates-formes (Windows 8, plus précisément) d'exiger la fonctionnalité du périphérique webcam
et la capacité générale de picturesLibrary
et d'appliquer la fonctionnalité du périphérique webcam
uniquement aux projets Windows 8.1 qui construisent pour Windows Phone. Windows desktop 8.1 systèmes sont non modifiés.
plugins-plist Élément
Ceci est obsolète car elle ne s'applique à cordova-ios 2.2.0 et au-dessous. Utilisez la balise <file-config>
une version plus récente de Cordova.
Exemple :
<config-file target="config.xml" parent="/widget/plugins">
<feature name="ChildBrowser">
<param name="ios-package" value="ChildBrowserCommand"/>
</feature>
</config-file>
Spécifie une clé et une valeur à ajouter au fichier AppInfo.plist
correct dans un projet de Cordova d'iOS. Par exemple :
<plugins-plist key="Foo" string="CDVFoo" />
Éléments de ressource-fichier et le fichier d'en-tête
Comme fichiers sources, mais spécialement pour les plateformes telles qu'iOS, qui distinguent entre les fichiers sources, en-têtes et ressources. Exemples d'iOS :
<resource-file src="CDVFoo.bundle" />
<resource-file src="CDVFooViewController.xib" />
<header-file src="CDVFoo.h" />
Exemple de Android :
<resource-file src="FooPluginStrings.xml" target="res/values/FooPluginStrings.xml" />
lib-fichier Élément
Comme source, ressources et fichiers d'en-tête, mais spécialement pour les plateformes telles que BlackBerry 10 qui utilisent des bibliothèques généré par l'utilisateur. Exemples :
<lib-file src="src/BlackBerry10/native/device/libfoo.so" arch="device" />
<lib-file src="src/BlackBerry10/native/simulator/libfoo.so" arch="simulator" />
Attributs pris en charge :
src
(obligatoire): l'emplacement du fichier par rapport àplugin.xml
. Si lasrc
est introuvable, plugman s'arrête et inverse de l'installation, émet un avertissement sur le problème et les sorties avec un code différent de zéro.arch
: l'architecture pour laquelle le fichier.so
a été construit, nidevice
nisimulator
.
Pour la plate-forme Windows, l'élément du <lib-file>
permet l'inclusion d'un < SDKReference >
dans les fichiers de projet générés Windows.
Attributs pris en charge :
src
(obligatoire): le nom du SDK d'inclure (qui serviront comme valeur de l'attributInclude
de l'élément généré de< SDKReference >
).arch
: indique que le< SDKReference >
ne devraient être inclus lors de la construction de l'architecture spécifiée. Valeurs prises en charge sontx86
,x64
ouARM
.device-target
: indique que le< SDKReference >
ne devraient être inclus lors de la construction pour le type de périphérique cible spécifié. Valeurs prises en charge sontwin
(ouwindows
),phone
ouall
.versions
: indique que le< SDKReference >
ne devraient être inclus lorsque vous générez une version qui correspond à la chaîne de version spécifiée. Valeur peut être n'importe quelle chaîne de gamme version sémantique nœud valide.
Exemples :
<lib-file src="Microsoft.WinJS.2.0, Version=1.0" arch="x86" />
<lib-file src="Microsoft.WinJS.2.0, Version=1.0" versions=">=8.1" />
<lib-file src="Microsoft.WinJS.2.0, Version=1.0" target="phone" />
<lib-file src="Microsoft.WinJS.2.0, Version=1.0" target="win" versions="8.0" arch="x86" />
cadre Élément
Identifie un cadre (généralement une partie de la plate-forme/OS) dont dépend le plugin.
L'attribut facultatif custom
est une valeur booléenne qui indique si le cadre est celui qui est inclus dans le cadre de vos fichiers du plugin (donc il n'est pas une infrastructure de système).
framework pour iOS
<framework src="libsqlite3.dylib" />
<framework src="social.framework" weak="true" />
<framework src="relative/path/to/my.framework" custom="true" />
L'attribut facultatif weak
est une valeur booléenne qui indique si le cadre devrait être faiblement lié. La valeur par défaut est false
.
framework pour Android
Sur Android (à partir de cordova-android@4.0.0), cadre tags servent à inclure les dépendances Maven, ou d'inclure les projets de bibliothèque groupés.
Exemples :
<!-- Depend on latest version of GCM from play services -->
<framework src="com.google.android.gms:play-services-gcm:+" />
<!-- Depend on v21 of appcompat-v7 support library -->
<framework src="com.android.support:appcompat-v7:21+" />
<!-- Depend on library project included in plugin -->
<framework src="relative/path/FeedbackLib" custom="true" />
framework permet également d'avoir des fichiers personnalisés .gradle Sub inclus dans le fichier .gradle du projet principal :
<framework src="relative/path/rules.gradle" custom="true" type="gradleReference" />
Pour pre-android@4.0.0 (projets axés sur les fourmis) :
L'attribut optionnel type
est une chaîne qui indique le type de cadre à ajouter. Actuellement, seul projectReference
est pris en charge et uniquement pour Windows. À l'aide de custom=« true »
et type = « projectReference »
va ajouter une référence au projet qui sera ajouté à la compilation + lien vers les étapes du projet cordova. C'est essentiellement le seul moyen actuellement qu'un cadre « personnalisé » peut cibler plusieurs architectures comme ils sont explicitement construit comme une dépendance de l'application de cordova référencement.
L' option parent
définit le chemin d'accès relatif au répertoire contenant le sous-projet à laquelle ajouter la référence. La valeur par défaut est .
, c'est-à-dire le projet d'application. Il permet d'ajouter des références entre projets sub comme dans cet exemple :
<framework src="extras/android/support/v7/appcompat" custom="false" parent="FeedbackLib" />
framework pour Windows
La plate-forme de Windows prend en charge trois attributs supplémentaires (facultatifs) pour préciser quand le cadre devrait être inclus :
<framework src="path/to/project/LibProj.csproj" custom="true" type="projectReference"/>
L'attribut de arch
indique que le cadre ne devrait être inclus lors de la construction de l'architecture spécifiée. Valeurs prises en charge sont x86
, x64
ouARM
.
L'attribut device-target
indique que le cadre ne devrait être inclus lors de la construction pour le type de périphérique cible spécifié. Valeurs prises en charge sont win
(ou windows
), phone
ou all
.
L'attribut de versions
indique que le cadre ne devrait être inclus lorsque vous générez une version qui correspond à la chaîne de version spécifiée. Valeur peut être n'importe quelle chaîne de gamme version sémantique nœud valide.
Exemples d'utilisation de ces attributs spécifiques de Windows :
<framework src="src/windows/example.dll" arch="x64" />
<framework src="src/windows/example.dll" versions=">=8.0" />
<framework src="src/windows/example.vcxproj" type="projectReference" target="win" />
<framework src="src/windows/example.vcxproj" type="projectReference" target="all" versions="8.1" arch="x86" />
info Élément
Informations supplémentaires fournies aux utilisateurs. Ceci est utile lorsque vous avez besoin des étapes supplémentaires qui ne peuvent pas être facilement automatisées ou sont hors de portée de plugman. Exemples :
<info>
You need to install __Google Play Services__ from the `Android Extras` section using the Android SDK manager (run `android`).
You need to add the following line to the `local.properties`:
android.library.reference.1=PATH_TO_ANDROID_SDK/sdk/extras/google/google_play_services/libproject/google-play-services_lib
</info>
hook Élément
Représente votre script personnalisé qui sera appelé par Cordova en cas de certaines actions (par exemple, est appelé après plugin est ajouté ou plate-forme préparer logique). Ceci est utile lorsque vous avez besoin d'étendre les fonctionnalités de Cordoue par défaut. Voir Guide de crochets pour plus d'informations.
<hook type="after_plugin_install" src="scripts/afterPluginInstall.js" />
Variables
Dans certains cas, un plugin devrez peut-être modifier la configuration dépend de l'application cible. Par exemple, pour vous inscrire à C2DM sur Android, une application dont l'id de package est com.alunny.message
, il faudrait une autorisation tels que :
<uses-permission android:name="com.alunny.message.permission.C2D_MESSAGE"/>
Dans ce cas où le contenu inséré dans le fichier plugin.xml
ne connaît pas avance, variables peuvent être indiquées par un signe dollar suivi d'une série de lettres capitales, des chiffres ou des traits de soulignement. Pour l'exemple ci-dessus, le fichier plugin.xml
comprendrait cette balise :
<uses-permission android:name="$PACKAGE_NAME.permission.C2D_MESSAGE"/>
plugman remplace les références de variable avec la valeur spécifiée, ou une chaîne vide si elle n'est pas trouvé. La valeur de la variable référence peut-être être détectée (dans ce cas, dans le fichier AndroidManifest.xml
) ou spécifiée par l'utilisateur de l'outil ; le processus exact dépend de l'outil particulier.
plugman pouvez demander aux utilisateurs de spécifier les variables requises d'un plugin. Par exemple, les clés de l'API pour C2M et Google Maps peuvent être spécifiés comme un argument de ligne de commande :
plugman --platform android --project /path/to/project --plugin name|git-url|path --variable API_KEY=!@CFATGWE%^WGSFDGSDFW$%^#$%YTHGsdfhsfhyer56734
Pour rendre la variable obligatoire, la balise < platform >
doit contenir une balise < preference >
. Par exemple :
<preference name="API_KEY" />
plugman vérifie que ces préférences requis sont passés. Si ce n'est pas le cas, il doit avertir l'utilisateur comment passer la variable dans et sortir avec un code différent de zéro.
Certains noms de variables doivent être réservées, comme indiqué ci-dessous.
$PACKAGE_NAME
L'identificateur unique de domaine inverse style pour le package, correspondant à la CFBundleIdentifier
sur iOS ou l'attribut de l'élément de niveau supérieur manifeste
dans un fichier AndroidManifest.xml
de package
.