venerdì 31 gennaio 2014

Phonegap-Cordoba 3.0 con Android/Ios/FirefoxOS

Visto che oramai ho terminali Android, Ios e FirefoxOs ho voluto riprovare ad usare Phonega e nel frattempo le procedure di installazione sono decisamente cambiate


Phonegap/Cordoba si installa mediante Node.js per cui si deve prima installare il pacchetto Node.Js
Su Windows e MacOs c'e' un semplice installare mentre su Linux Node.js si installa scaricando direttamente i sorgenti e con la classica procedura
./configure
make
make install
(la procedura non e' rapidissima)

successivamente si inizia ad installare Phonegap con il comando
npm install -g phonegap
(forse e' inutile ma ho installato anche Cordova)
npm install -g cordova


si crea quindi il progetto
phonegap create hello com.example.hello HelloWorld
cd hello

e qui iniziano le differenze che ho trovato con le istruzioni ufficiali del sito

per creare il progetto Phonegap Android si deve dare direttamente il comando
phonegap build android
(devono essere setttata la Path per trovare la directory tools e platform-tools dell'SDK di Android altrimenti il comando fallisce con il comando
)
oppure
phonegap build ios

per lanciare l'esecuzione sul telefono
phonegap run android

oppure
phonegap run ios
(se non viene trovato il telefono fisico viene lanciato in automatico l'emulatore.

Nel caso di IOS deve essere prima installato il pacchetto ios-sim con i comandi
sudo su
xcodebuild -license
npm install -g ios-sim
)
Lanciato il comando l'emulatore parte ma si arriva a questo errore

Di fatto la directory www del progetto creato su Ios risulta vuota (c'e' solo un file .xml). Per risolvere il problema l'unica soluzione che ho trovato e' stata quella di copiare la directory www da un progetto Phonegap creato su Linux. Fatto cio' tutto inizia a funzionare perfettamente

A questo per aggiungere funzionalita' legate all'hardware dei telefoni si devono installare i plugin per le varie funzionalita'. Per test e' stato scaricato ed attivato il 

cordova plugin add org.apache.cordova.device

Ed ecco lo stesso programma di esempio che funziona, senza modifiche, sulle due piattaforme Android ed Ios

Phonegap su Ios

Phonegap su emulatore Android in Ios

si puo' aggiungere al progetto anche FirefoxOs mediante
cordova platform add firefox

il problema e' che l'emulatore di Firefox Os non funziona sotto Mac Os X (almeno al momento in cui scrivo questa riga). Parte e si chiude dopo qualche secondo. Per ovviare al problema ho spostato tutta la cartella della piattaforma Firefox sull'emulatore di Windows e selezionato il file manifest.
Si osserva che il supporto di Phonegap a Firefox e' ancora poco maturo in quanto le API ancora non funzionano (almeno quelle dell'esempio)