IMPORTANT: Per accedir als fitxer de subversion: http://acacha.org/svn (sense password). Poc a poc s'aniran migrant els enllaços. Encara però funciona el subversion de la farga però no se sap fins quan... (usuari: prova i la paraula de pas 123456)

http://julianhigman.com/blog/2013/10/17/notes-on-setting-up-phonegap-on-ubuntu-for-android-app-development/
https://build.phonegap.com/

Adobe

Introducció

Empaquetar aplicaciones HTML5 con PhoneGap/Cordova

TODO:

Llevaba tiempo queriendo probar PhoneGap y resulta que para cuando tengo tiempo de echarle un vistazo ya no se llama PhoneGap, sino que ahora se llama Cordova (sí, con “V”) y está dentro la incubadora de proyectos de la Apache Software Fundation.

PhoneGap es un proyecto que sirve para convertir aplicaciones desarrolladas con HTML+Javascript+CSS en aplicaciones nativas para dispositivos móviles. Bueno, realmente es mentira. Lo que hace es empaquetar aplicaciones web dentro de una aplicación nativa (Android/iOS/BlackBerry/WP7/…) para que parezca que son aplicaciones nativas.

Además permite acceder desde Javascript a funcionalidades del dispositivo que, generalmente, no son accesibles por cuestiones de seguridad, como puede ser la cámara, la lista de contactos, el acelerómetro, etc.

Prepararlo todo para poder hacer una prueba con Android me ha llevado un rato, así que como referencia para mi yo futuro, aquí dejo esta miniguía de como montarlo sobre LinuxMint (supongo que los pasos serán similares con cualquier distribución basada en Ubuntu y no serán muy distintos en Windows).

Instal·lació

Prerequisits

npm

Android SDK

Repositoris

$ sudo apt-get install npm
$ npm config set registry http://registry.npmjs.org/
$ sudo npm install -gf phonegap
$ sudo npm install -g cordova

Recursos:

Llibreria Cordova

$ sudo npm install -g cordova

Oco. Si us dona un error pot ser pel fet de tenir node instal·lat per repositoris, en manual:

$ cd /usr/local/bin
$ sudo ./npm install -g cordova

Exemples

Exemple de la web

$ sudo /usr/local/bin/phonegap run android
[phonegap] detecting Android SDK environment...
[phonegap] using the local environment
[phonegap] adding the Android platform...  

/home/alumne/.cordova/lib/android/cordova/3.4.0/bin/node_modules/q/q.js:126
                    throw e;
                          ^
Error: An error occurred while listing Android targets
    at /home/alumne/.cordova/lib/android/cordova/3.4.0/bin/lib/check_reqs.js:87:29
    at _rejected (/home/alumne/.cordova/lib/android/cordova/3.4.0/bin/node_modules /q/q.js:808:24)
   at /home/alumne/.cordova/lib/android/cordova/3.4.0/bin/node_modules/q/q.js:834:30
   at Promise.when (/home/alumne/.cordova/lib/android/cordova/3.4.0/bin/node_modules/q/q.js:1079:31)
   at Promise.promise.promiseDispatch (/home/alumne/.cordova/lib/android/cordova/3.4.0/bin/node_modules/q/q.js:752:41)
   at /home/alumne/.cordova/lib/android/cordova/3.4.0/bin/node_modules/q/q.js:574:44
   at flush (/home/alumne/.cordova/lib/android/cordova/3.4.0/bin/node_modules/q/q.js:108:17)
   at process._tickCallback (node.js:415:13)
  [error] /home/alumne/.cordova/lib/android/cordova/3.4.0/bin/create: Command failed with exit code 8

Requirements

First of all, you will need a few things to get started. They are: Android SDK and Apache Ant. Of course, you will need Java SDK (JDK) installed.

To get Android SDK working for all users, you shall need to modify the /etc/environment file and then restart your PC. But if you do not want that hard way - follow me, think of yourself as the only PC user. And use /home/YOUR_USERNAME/.bashrc file to edit.

Let's remember your home path one time to prevent further long lines. Add this one to your /home/YOUR_USERNAME/.bashrc:

export HOME="/home/YOUR_USERNAME"

We'll then use the $HOME notation when we want to say "/home/YOUR_USERNAME directory". Setting up Android SDK

Download the Android SDK archive and unzip it somewhere. Let's say, yo your home directory, $HOME/adt-bundle/.

Add these lines to your $HOME/.bashrc:

export ANDROID_HOME="$HOME/android-bundle/sdk/tools"
export ANDROID_PLATFORM_TOOLS="$HOME/android-bundle/sdk/platform-tools"
export PATH="$ANDROID_HOME:$ANDROID_PLATFORM_TOOLS:$PATH" 

Setting up Ant

Just as with the Android SDK, download an archive and unzip it to your home directory. Then add these to your .bashrc:

export ANT_HOME="$HOME/ant"
export PATH="$PATH:$ANT_HOME/bin"

I've installed one via the apt-get so this did not affect my .bashrc. Wrapping up

At the end, you will got:

   Two directories at your home directory - ant and android-bundle
   A few lines, added to your .bashrc:
   export ANDROID_HOME="$HOME/android-bundle/sdk/tools"
   export ANDROID_PLATFORM_TOOLS="$HOME/android-bundle/sdk/platform-tools"
   export PATH="$ANDROID_HOME:$ANDROID_PLATFORM_TOOLS:$PATH"
   export ANT_HOME="$HOME/ant"
   export PATH="$PATH:$ANT_HOME/bin"


Cal instal·lar dependències i configurar PATHS:

http://stackoverflow.com/questions/20323787/cordova-platform-add-android-not-working-while-listing-android-targets

Recursos:

Hola Mon!

Pas a pas complet amb Ubuntu. Instal·lació Phonegap, eclipse, etc i primers passos

Exemple 3

PhoneGap plugins

Permeten fer coses més elaborades com utilitzar les característiques pròpies dels dispositius (hardware com accelerometres, GPS, etc.)

http://docs.phonegap.com/en/1.5.0/index.html

Troubleshotting. Resol·lució de problemes

npm ERR! Error: failed to fetch from registry: phonegap

Problema

$ sudo npm install -g phonegap
npm http GET https://registry.npmjs.org/phonegap

npm ERR! Error: failed to fetch from registry: phonegap
npm ERR!     at /usr/share/npm/lib/utils/npm-registry-client/get.js:139:12
npm ERR!     at cb (/usr/share/npm/lib/utils/npm-registry-client/request.js:31:9)
npm ERR!     at Request._callback (/usr/share/npm/lib/utils/npm-registry-client /request.js:136:18 )
npm ERR!     at Re quest.callback (/usr/lib/nodejs/request/main.js:119:22)
npm ERR!     at Request.<anonymous> (/usr/lib/nodejs/request/main.js:212:58)
npm ERR!     at Request.emit (events.js:88:20)
npm ERR!     at ClientRequest.<anonymous> (/usr/lib/nodejs/request/main.js:412:12)
npm ERR!     at ClientRequest.emit (events.js:67:17)
npm ERR!     at HTTPParser.onIncoming (http.js:1261:11)
npm ERR!     at HTTPParser.onHeadersComplete (http.js:102:31)
npm ERR! You may report this log at:
npm ERR!     <http://bugs.debian.org/npm>
npm ERR! or use
npm ERR!     reportbug --attach /home/alumne/npm-debug.log npm
npm ERR! 
npm ERR! System Linux 3.2.0-38-generic-pae
npm ERR! command "node" "/usr/bin/npm" "install" "-g" "phonegap"
npm ERR! cwd /home/alumne
npm ERR! node -v v0.6.12
npm ERR! npm -v 1.1.4
npm ERR! message failed to fetch from registry: phonegap
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /home/alumne/npm-debug.log
npm not ok

Solució:

$ sudo npm install -gf phonegap


As mentioned here http://stackoverflow.com/a/13119867/1955071, please use following command and then install phonegap,

npm config set registry http://registry.npmjs.org/

Afterwards, in case you get this error "Error: No compatible version found: phonegap" then add force flag to install it,

sudo npm install -gf phonegap

Vegeu també

Enllaços externs