Nel corso di questa guida abbiamo esplorato ed utilizzato alcune delle funzionalità che Apache Cordova
fornisce come interfaccia verso le piattaforme mobile che ospitano le applicazioni HTML5.
Abbiamo visto come sfruttare le API per avere informazioni sulla connettività e sul livello di carica della batteria, come gestire lo storage e l'upload di file, come individuare la posizione corrente, come interfacciarsi con la fotocamera.
Le API che abbiamo visto erano funzionali allo sviluppo della nostra applicazione d'esempio; ma Cordova
prevede anche altre funzionalità che consentono di sfruttare le più comuni feature dei moderni dispositivi mobili.
In questa puntata faremo una panoramica delle API previste dal framework e che non abbiamo utilizzato nel nostro piccolo progetto per dare un'idea di quello che è possibile implementare in un'app ibrida Apache Cordova
.
L'oggetto device
Iniziamo con l'oggetto device, che fornisce informazioni sulla piattaforma hardware e software su cui sta girando la nostra applicazione. Esaminiamo subito un piccolo snippet di codice per recuperare e visualizzare queste informazioni:
showDeviceInfo: function() {
var divInfo = $("#divInfo");
divInfo.html("Modello dispositivo: " + window.device.model + "<br/>" +
"UUID dispositivo: " + window.device.uuid + "<br/>" +
"Sistema operativo: " + window.device.platform + "<br/>" +
"Versione S.O.: " + window.device.version + "<br/>" +
"Versione Cordova: " + window.device.cordova + "<br/>");
}
Come è facile intuire, tramite l'oggetto device possiamo recuperare il modello di dispositivo, il relativo identificatore univoco (uuid
), il sistema operativo in esecuzione con la relativa versione e la versione di Apache Cordova su cui è basata l'applicazione corrente.
Queste informazioni possono risultare utili sia a fini statistici sia per specifici adeguamenti a runtime.
Per quanto riguarda l'identificatore univoco di un dispositivo, le modalità con cui viene generato dipende dallo specifico produttore, dalla piattaforma o dal modello. In generale esso è univoco per singolo dispositivo, ma le recenti mosse di Apple indicano che potrebbe non essere così nelle versioni più recenti di iOS.