Anexo 1
Anexo 1
Anexo 1
5.- Plugins.
Build.
1
En el curso hemos comprobado que podemos hacer páginas
web y aplicaciones web multiplataforma a través de jQuery. Si
recordamos, se basaba en un archivo HTML, su código CSS3 y su
código en JavaScript o jQuery.
http://phonegap.com/install
2
En esta página nos comenta que debemos tener instalado
NodeJS previamente. Por lo que si no lo tenemos instalado, nos
debemos desplazar a la web oficial, descargar e instalar en nuestro
equipo:
http://nodejs.org/
3
En MAC, cuando ejecutemos los comandos para la instalación
de PhoneGap, es posible que nos pida la instalación de XcodeBuild, en
tal caso, debemos instalarlo.
Windows:
Mac:
4
Si activamos el servidor apache y nos dirigimos a la raíz del
servidor, y ejecutamos escribiendo en el navegador
appHolaMundo/www nos aparecerá la siguiente pantalla:
5
Como podemos apreciar, PhoneGap está buscando un
dispositivo para conectar, es decir, no hemos arrancado el emulador.
Es una página de inicio que tiene PhoneGap cuando crea los
proyectos por defecto. Debemos irnos a Ripple Emulator y Activar el
emulador seleccionando Enable.
6
¿Qué partes son las más importantes en nuestro proyecto
PhoneGap por ahora? Podíamos resumirlas inicialmente en las
siguientes:
PROYECTO PHONEGAP
Carpeta www
HTML5 ARCHIVO DE PLUGINS
CONFIGURACIÓN PREFERENCIAS
CSS3
JavaScript config.xml
7
Archivo de configuración: Con este archivo delimitaremos los
permisos, preferencias, versiones a exportar (Android, iPhone, etc.).
Los iconos y muchas más cosas.
8
Nuestro index.html podría tener el siguiente aspecto, debes
fijarte que he usado como base el ejemplo que realizamos en el
módulo de jQuery Mobile para tener algo en el <body> del
documento y no poner sólo el texto de hola mundo.
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="utf-8" />
<title>Módulo jQuery Mobile</title>
<input type="text/javascript" src="js/cordova.js"></script>
<input type="text/javascript" src="js/index.js"></script>
<script type="text/javascript" src="js/jquery-1.11.1.min.js"></script>
<script type="text/javascript" src="js/jquery.mobile-1.4.3.min.js"></script>
<link rel="stylesheet" type="text/css" href="css/jquery.mobile-1.4.3.min.css">
<!-- WARNING: for iOS 7, remove the width=device-width and height=device-height attributes.
See https://issues.apache.org/jira/browse/CB-4323 -->
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1,
minimum- scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" />
</head>
<body>
<section id="inicio" data-role="page">
<header data-role="header">
<h1>CABECERA</h1>
</header>
<article data-role="content">
<p>CONTENIDO DE LA PÁGINA<p>
</article>
<footer data-role="footer" data-id="menuInferior" data-position="fixed" data-theme="a">
<nav data-role="navbar">
<ul>
<li><a href="#inicio" class="ui-btn-active ui-state-persist"
data-icon="home">Inicio</a></li>
<li><a href="#formacion" data-icon="grid">Formación</a></li>
<li><a href="#experiencia" data-icon="star">Trabajos</a></li>
<li><a href="#otros" data-icon="info">Otros</a></li>
<li><a href="#contactar" data-icon="mail">Contactar</a></li>
</ul>
</nav>
</footer><!-- /footer -->
</body>
</html>
var app = {
// Constructor de la Aplicación
initialize: function() {
this.bindEvents();
},
9
// Enlazamos el escuchador de eventos
//
// Enlazamos algun evento que sea requerido en el inicio de la aplicacion, como por ejemplo
// 'load', 'deviceready', 'offline', and 'online'.
bindEvents: function() {
document.addEventListener('deviceready', this.onDeviceReady, false);
},
// Manejador del evento deviceready
//
// El alcance de es el evento. Con el fin de llamar al evento recibido 'receivedEvent'
// function, we must explicitly call 'app.receivedEvent(...);'
onDeviceReady: function() {
app.receivedEvent('deviceready');
},
// Actualiza el DOM con el evento recibido
receivedEvent: function(id) {
var parentElement = document.getElementById(id);
var listeningElement = parentElement.querySelector('.listening');
var receivedElement = parentElement.querySelector('.received');
listeningElement.setAttribute('style', 'display:none;');
receivedElement.setAttribute('style', 'display:block;');
10
3.- Archivo de configuración config.xml.
<widget>
</widget>
es.aplicacioneswebmultiplataforma.appHolaMundo
11
La versión indicaría la versión actual, importante para futuras
actualizaciones llevar un control creciente de las actualizaciones en
cada versión.
12
4.- Preferencias dentro del fichero config.xml.
landscape
portrait
13
http://build.phonegap.com/apps
Aquí podemos ver las opciones que por ahora nos ofrece
PhoneGap. Nosotros podemos crear una Aplicación Privadas de forma
gratuita, y a partir de ahí, si queremos añadir más aplicaciones,
tendremos que pagar una cuota mensual. Existen otros métodos
como se comentó anteriormente para no usar PhoneGap Build, pero
éstas son más manuales, menos rápidas y requieren de otros
conocimientos que no están dentro de este curso.
14
Si no tenemos un Adobe ID, tendremos que crearnos uno,
seleccionando en Get an Adobe ID.
http://docs.build.phonegap.com/en_US/#googtrans(en)
15
Con esta documentación podemos tener la ayuda necesaria
para rellenar correctamente el fichero config.xml, iconos para cada
plataforma, plugins, etc.
5.- Plugins.
16
<gap:plugin name="org.apache.cordova.camera" />
<gap:plugin name="org.apache.cordova.media-capture" />
<gap:plugin name="org.apache.cordova.console" />
<gap:plugin name="org.apache.cordova.contacts" />
<gap:plugin name="org.apache.cordova.device" />
<gap:plugin name="org.apache.cordova.device-motion" />
<gap:plugin name="org.apache.cordova.device-orientation" />
<gap:plugin name="org.apache.cordova.dialogs" />
<gap:plugin name="org.apache.cordova.file" />
<gap:plugin name="org.apache.cordova.file-transfer" />
<gap:plugin name="org.apache.cordova.geolocation" />
<gap:plugin name="org.apache.cordova.globalization" />
<gap:plugin name="org.apache.cordova.inappbrowser" />
<gap:plugin name="org.apache.cordova.media" />
<gap:plugin name="org.apache.cordova.network-information"
/>
<gap:plugin name="org.apache.cordova.splashscreen" />
<gap:plugin name="org.apache.cordova.vibration" />
17
- Tenemos que comprobar las resoluciones, las rutas y adaptar
las imágenes del icono de la aplicación a todos los formatos
posibles para tener la máxima compatibilidad gráfica con los
dispositivos. Este icono se referirá al icono que le aparecerá al
usuario cuando busque tu aplicación dentro de su dispositivo.
- Tenemos que revisar el archivo config.xml dentro de nuestro
proyecto y asegurarnos que los datos están correctamente
rellenos, un ejemplo puede ser:
<widget id="es.aplicacioneswebmultiplataforma.appHolaMundo"
version="1.0.0" xmlns="http://www.w3.org/ns/widgets"
xmlns:gap="http://phonegap.com/ns/1.0">
<name>Hola Mundo Multiplataforma</name>
<description>
Es un ejemplo sencillo de una aplicación web exportada con PhoneGap
</description>
<author email="support@aplicacioneswebmultiplataforma.es"
href="http://www.aplicacioneswebmultiplataforma.es">
Equipo técnico web multiplataforma
</author>
,,,,,
- Tenemos que tener una cuenta Adobe ID que podemos
obtener de forma gratuita.
18
Ahora podemos continuar con la exportación a las diferentes
plataformas; necesitaremos inicialmente irnos al fichero config.xml y
comentar las líneas que se refieren a la versión de PhoneGap, ya que
estamos usando la propia aplicación de PhoneGap Build y él usará la
versión que crea conveniente. Debemos dejar el fichero con la línea
comentada o borrada:
...
...
</author>
<preference name="permissions" value="none" />
<!-- <preference name="phonegap-version" value="3.5.0" /> -->
<preference name="orientation" value="default" />
<preference name="target-device" value="universal" />
...
...
...
<gap:platform name="ios" />
<gap:platform name="android" />
<gap:platform name="winphone" />
...
1. Mediante un .zip.
2. Si tenemos una cuenta GitHub, podemos compartir y
trabajar con las aplicaciones que tengamos en nuestro
espacio de trabajo.
19
El archivo que debemos subir es el señalado con la fecha. Ahora
ya nos podemos ir a la web de PhoneGap Build y subir nuestro
archivo, usando la opción Upload a .zip file.
20
ejercicio de prueba, hemos usado el que viene por defecto. Por tanto
veremos los siguientes datos:
21
Bien, ya tenemos la información suficiente de qué nos ha
pasado. Vayamos por partes:
Nos está indicando que primero tenemos que tener una key y
luego podemos arreglar ésta.
Aquí vemos que no nos ha dado error, pero sin embargo, si nos
deja descargarnos el archivo, y además nos da la posibilidad de
añadir el Publisher ID para descargárnoslo completamente.
22
Al igual que pasaba con Windows Phone, nos podemos
descargar directamente el .apk, que como vimos en el curso es el
formato de proyecto para Android y es el que necesitamos para su
tienda.
23
Efectivamente, es porque en nuestro archivo de configuración,
habíamos seleccionado que el valor era a fullscreen o pantalla
completa. Si recordamos teníamos:
...
...
<preference name="fullscreen" value="true" />
...
...
¿Qué pasa si giro la pantalla?
...
...
<preference name="orientation" value="default" />
...
...
24
Como podemos ver podemos generar desde un diseño creado
en HTML5, CSS y JavaScript o jQuery Mobile, somos capaces de
realizar aplicaciones para múltiples plataformas.
25