Guida allo sviluppo di plugin
Un plugin è un pacchetto di codice inserito che permette di Cordova webview entro il quale l'applicazione esegue il rendering per comunicare con la piattaforma nativa su cui viene eseguito. Plugin forniscono accesso alla funzionalità di piattaforma e dispositivo ordinariamente non disponibile per le applicazioni basate su web. Tutte le principali caratteristiche di Cordova API vengono implementate come plugin, e molti altri sono disponibili che abilitare funzioni quali scanner di codice a barre, comunicazione NFC, o calendario di adattare le interfacce. C'è un Registro di plugin disponibili.
Plugin comprendono una singola interfaccia JavaScript corrispondenti librerie di codice nativo per ogni piattaforma supportata. In sostanza questo nasconde le varie implementazioni di codice nativo dietro un'interfaccia comune di JavaScript.
Questa sezione a pochi passi attraverso un plugin semplice eco che passa una stringa da JavaScript alla piattaforma nativa e ritorno, uno che è possibile utilizzare come modello per costruire funzioni molto più complesse. Questa sezione discute la struttura di base del plugin e l'interfaccia JavaScript rivolte. Per ogni interfaccia nativa corrispondente, vedere l'elenco alla fine di questa sezione.
Oltre a queste istruzioni, quando si appresta a scrivere un plugin che è meglio guardare oltre esistenti plugin per l'orientamento.
Costruzione di un Plugin
Gli sviluppatori di applicazioni utilizzano il CLI plugin add
comando (discusso in The Command-Line Interface) per applicare un plugin per un progetto. L'argomento che il comando è l'URL di un repository git , contenente il codice del plugin. Questo esempio implementa l'API di Device di Cordova:
$ cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-device.git
Il repository dei plugin deve dispongono di un livello superiore plugin.xml
file manifesto. Ci sono molti modi per configurare questo file, per cui i dettagli sono disponibili nella specifica del Plugin. Questa versione abbreviata della Device
plugin fornisce un esempio semplice da utilizzare come modello:
<?xml version="1.0" encoding="UTF-8"?>
<plugin xmlns="http://apache.org/cordova/ns/plugins/1.0"
id="cordova-plugin-device" version="0.2.3">
<name>Device</name>
<description>Cordova Device Plugin</description>
<license>Apache 2.0</license>
<keywords>cordova,device</keywords>
<js-module src="www/device.js" name="device">
<clobbers target="device" />
</js-module>
<platform name="ios">
<config-file target="config.xml" parent="/*">
<feature name="Device">
<param name="ios-package" value="CDVDevice"/>
</feature>
</config-file>
<header-file src="src/ios/CDVDevice.h" />
<source-file src="src/ios/CDVDevice.m" />
</platform>
</plugin>
Il primo livello plugin
tag id
attributo utilizza lo stesso formato di retromarcia-dominio per identificare il pacchetto plugin aggiunti i apps per essi. Il js-module
tag specifica il percorso del comune interfaccia JavaScript. Il platform
tag specifica un insieme corrispondente di codice nativo, per il ios
piattaforma in questo caso. Il config-file
tag incapsula un feature
tag che viene iniettato nella piattaforma-specifiche config.xml
file a sensibilizzare la piattaforma della libreria di codice aggiuntivo. Il header-file
e source-file
tag specificare il percorso al file di libreria componenti.
Convalidando un Plugin
È possibile utilizzare il plugman
utility per verificare se il plugin si installa correttamente per ogni piattaforma. Installare plugman
con il seguente comando di nodo :
$ npm install -g plugman
Hai bisogno di una directory di origine valido app, ad esempio il primo livello www
directory incluso in un progetto generato da CLI predefinito come descritto in l'interfaccia della riga di comando. Assicurarsi che l'app index.html
home page di riferimento al nome dell'interfaccia del plugin JavaScript come se fossero nella stessa directory dei sorgenti:
<script src="myplugin.js"></script>
Quindi eseguire un comando simile al seguente per verificare se le dipendenze iOS carica correttamente:
$ plugman install --platform ios --project /path/to/my/project/www --plugin /path/to/my/plugin
Per maggiori dettagli su plugman
opzioni, vedere utilizzando Plugman per gestire i plugin. Per informazioni su come effettivamente plugin debug , vedere l'interfaccia nativa su ogni piattaforma, elencato in fondo a questa pagina.
L'interfaccia JavaScript
Il JavaScript fornisce l'interfaccia frontale, che lo rende forse la parte più importante del plugin. Si può strutturare JavaScript del vostro plugin comunque piace, ma è necessario chiamare cordova.exec
per comunicare con la piattaforma nativa, utilizzando la seguente sintassi:
cordova.exec(function(winParam) {},
function(error) {},
"service",
"action",
["firstArgument", "secondArgument", 42, false]);
Ecco come funziona ogni parametro:
function(winParam) {}
: Funzione di callback un successo. Supponendo che ilexec
chiamata viene completata correttamente, questa funzione viene eseguita insieme a tutti i parametri si passa ad esso.function(error) {}
: Funzione di callback un errore. Se l'operazione non viene completata correttamente, questa funzione viene eseguita con un parametro facoltativo errore."service"
: Il nome del servizio chiamare il lato nativo. Ciò corrisponde ad una classe nativa, per cui ulteriori informazioni sono disponibili nelle guide native elencate di seguito."action"
: Il nome dell'azione per chiamare sul lato nativo. Generalmente corrisponde al metodo classe nativa. Vedere le guide native elencate di seguito.[/* arguments */]
: Una matrice di argomenti da passare nell'ambiente nativo.
Esempio JavaScript
In questo esempio viene illustrato un modo per implementare l'interfaccia JavaScript del plugin:
window.echo = function(str, callback) {
cordova.exec(callback, function(err) {
callback('Nothing to echo.');
}, "Echo", "echo", [str]);
};
In questo esempio, il plugin si attacca per la window
object come la echo
funzione che gli utenti plugin chiamerebbe come segue:
window.echo("echome", function(echoValue) {
alert(echoValue == "echome"); // should alert true.
});
Guardate gli ultimi tre argomenti per la cordova.exec
funzione. Il primo chiama la Echo
servizio, un nome di classe. Le richieste seconda la echo
azione, un metodo all'interno di tale classe. La terza è una matrice di argomenti contenenti la stringa di eco, che è la window.echo
funzione di primo parametro.
Il callback di successo passati in exec
è semplicemente un riferimento alla funzione di callback window.echo
prende. Se la piattaforma nativa viene generato il callback di errore, semplicemente chiama il callback di successo e si passa una stringa predefinita.
Interfacce native
Una volta definito per il plugin JavaScript, è necessario integrarla con almeno un'implementazione nativa. Di seguito sono elencati i dettagli per ogni piattaforma, e ciascuno si basa sul semplice esempio Echo Plugin precedente:
- Amazon fuoco OS Plugins
- Plugin Android
- iOS Plugins
- BlackBerry 10 plugin
- Windows Phone 8 plugin
- Plugin di Windows
La piattaforma di Tizen non supporta plugin.
Editrice Plugins
Una volta che si sviluppa il tuo plugin, puoi pubblicare e condividere con la Comunità. È possibile pubblicare il tuo plugin in qualsiasi npmjs
-base del registro di sistema, ma quella consigliata è il Registro di sistema NPM. Si prega di leggere il nostro plugin editrice npm guida.
Nota: Registro dei plugin di Cordova si sta muovendo per uno stato di sola lettura. publish
/ unpublish
i comandi sono stati rimossi dal plugman
, quindi avrete bisogno di utilizzare la corrispondente npm
comandi.
Altri sviluppatori possono installare il plugin automaticamente utilizzando uno plugman
o Cordova CLI. (Per informazioni dettagliate su ciascun percorso di sviluppo, vedere utilizzando Plugman per gestire i plugin e The Command-Line Interface).
Per pubblicare un plugin del registro di sistema NPM che è necessario seguire la procedura riportata di seguito:
creare
package.json
file per il vostro plugin:$ plugman createpackagejson /path/to/your/plugin
pubblicarlo:
$ npm adduser # that is if you don't have an account yet $ npm publish /path/to/your/plugin
Questo è tutto!
Esecuzione plugman --help
elenca altri comandi disponibili basati sui registri.