Abbiamo più volte detto che Apache Cordova
ci consente di ignorare i dettagli implementativi di un'applicazione dipendenti dalla piattaforma mobile. Questo naturalmente non è vero se intendiamo realizzare un plugin. Anzi, se vogliamo creare un plugin che deve girare su più piattaforme dobbiamo prenderci l'onere di sviluppare il backend per tutte le piattaforme.
In questa guida non intendiamo addentrarci nei meandri dello sviluppo per le varie piattaforme mobile, ma vogliamo soltanto dare un'idea di come viene specificata la corrispondenza tra codice JavaScript e codice nativo.
Supponiamo ad esempio di voler implementare un plugin che agli occhi dello svilupptore Cordova
può essere utilizzato secondo questa sintassi:
navigator.goPlugin("myString", onSuccess, onError);
La prima cosa che dobbiamo definire è l'interfaccia JavaScript:
navigator.goPlugin = function(str, onSuccess, OnError) {
cordova.exec(onSuccess, onError, "myPlugin", "go", [str]);
}
La funzione responsabile della chiamata al codice nativo è cordova.exec()
che si occupa di passare i parametri al codice sottostante in maniera asincrona. I parametri previsti dalla funzione sono, oltre alle callback di successo e di errore, una stringa che rappresenta la classe o il servizio sottostante ("myPlugin"
nel nostro caso), il metodo o l'azione relativa alla classe o servizio specificato nel parametro precedente ("go"
nel nostro esempio) e un array di parametri passati dall'utente alla funzione.
Questa interfaccia vale per tutte le piattaforme. A questo punto non ci resta che implementare il codice nativo sottostante. Per maggiori riferimenti ed esempi specifici per ciascuna piattaforma fare riferimento alla documentazione ufficiale.