Crear Un Plugin Para Android En Phonegap
Total Page:16
File Type:pdf, Size:1020Kb
Avenida de Castilla,1 - Edificio Best Point - Oficina 21B 28830 San Fernando de Henares (Madrid) tel./fax: +34 91 675 33 06 [email protected] - www.autentia.com ¿Qué ofrece Autentia Real Business Solutions S.L? Somos su empresa de Soporte a Desarrollo Informático. Ese apoyo que siempre quiso tener... 1. Desarrollo de componentes y proyectos a medida 2. Auditoría de código y recomendaciones de mejora 3. Arranque de proyectos basados en nuevas tecnologías 1. Definición de frameworks corporativos. 2. Transferencia de conocimiento de nuevas arquitecturas. 3. Soporte al arranque de proyectos. 4. Auditoría preventiva periódica de calidad. 5. Revisión previa a la certificación de proyectos. 6. Extensión de capacidad de equipos de calidad. 7. Identificación de problemas en producción. 3a RFP Concurso Verificación Gran Empresa previa Consultora 1 Producción Tecnología Consultora 2 Certificación Desarrollo o Pruebas Consultora 3 Sistemas 3b Piloto Equipo propio desarrollo autentia 4. Cursos de formación (impartidos por desarrolladores en activo) JPA-Hibernate, MyBatis Spring MVC, JSF-PrimeFaces /RichFaces, Control de autenticación y Motor de búsqueda empresarial (Solr) HTML5, CSS3, JavaScript-jQuery acceso (Spring Security) UDDI ETL (Talend) Web Services Rest Services Dirección de Proyectos Informáticos. Gestor portales (Liferay) Social SSO Metodologías ágiles Gestor de contenidos (Alfresco) SSO (Cas) Patrones de diseño Aplicaciones híbridas TDD Tareas programadas (Quartz) BPM (jBPM o Bonita) Gestor documental (Alfresco) Generación de informes (JasperReport) Inversión de control (Spring) ESB (Open ESB) Compartimos nuestro conociemiento en: Para más información visítenos en: www.adictosaltrabajo.com www.autentia.com Crear un plugin para Android en PhoneGap http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pag... Entra en Adictos a través de Deseo registrarme Entrar Olvidé mi contraseña Inicio Quiénes somos Formación Comparador de salarios Nuestros libros Más » Estás en: Inicio Tutoriales Crear un plugin para Android en PhoneGap MoreShare Rubén Aguilera Díaz-Heredero Catálogo de servicios Autentia Consultor tecnológico de desarrollo de proyectos informáticos. Ingeniero en Informática, especialidad en Ingeniería del Software Puedes encontrarme en Autentia: Ofrecemos servicios de soporte a desarrollo, factoría y formación Somos expertos en Java/J2EE Ver todos los tutoriales del autor Fecha de publicación del tutorial: 2014-03-26 Tutorial visitado 3 veces Descargar en PDF Crear un plugin para Android en PhoneGap 0. Índice de contenidos. 1. Entorno 2. Introducción Síguenos a través 3. Vamos al lío de: 4. Conclusiones 1. Entorno Este tutorial está escrito usando el siguiente entorno: Hardware: Portátil Mac Book Pro 17" (2,6 Ghz Intel Core i7, 8 GB DDR3) Últimas Noticias Sistema Operativo: Mac OS X Snow Leopard 10.6.4 Apache Cordova 3.4.0-0.1.0 » Autentia estrena web y 2. Introducción celebra el X Cycling Day Antes de seguir con este tutorial se aconseja haber completado este otro que nos muestra como empezar a dar los primeros » Buscamos personal para pasos y este otro que nos enseña como utilizar los plugin en PhoneGap/Cordova. Autentia y nuestros clientes (10-Marzo-2014) Además si todavía te haces un lío entre que es PhoneGap y que es Apache Cordova te recomiendo leer está noticia al respecto. » Charla de Auto Layout en nuestra oficina Bien lo que vamos a ver en este tutorial es cómo crear un plugin que podamos reutilizar en cualquier de nuestros desarrollo con PhoneGap/Cordova. Los plugins son la mejor forma de extender funcionalidad en PhoneGap permitiendo la ejecución de » PhoneGap y Apache código nativo invocado desde Javascript. Cordova: resolviendo el enredo. Para este tutorial nos vamos a centrar en cómo crear un plugin para dispositivos Android que permita el envío de emails desde la aplicación sin necesidad de tener que utilizar el gestor de correo de Android y sin que el usuario tenga que dar » Mi semana de desk-surfing explícitamente a "Enviar". en Otogami 3. Vamos al lío Histórico de noticias Lo primero que vamos a hacer es crear nuestro plugin. Para ello vamos a crear una estructura de carpetas que almacenen todos los componentes necesarios para la implementación del plugin. Por tannto en cualquier parte que decidamos de nuestro sistema de ficheros vamos a crear la carpeta "send-mail-cordova-plugin". Últimos Tutoriales La forma en la que PhoneGap se comunica con la parte nativa es a través de esta llamada javascript: » Implementando tu propio view plain print ? Writable en Hadoop 01. cordova.exec(successCallback, failureCallback, class, method, [arguments]); » Cómo añadir Volley (librería Estos son los argumentos: de Android) en Android Studio successCallback: será la función que se quiera ejecutar cuando el resultado de la invocación sea satisfactorio. » Kettle no es una tetera, es la failureCallback: será la función a ejecutar cuando el resultado de la invocación no sea satisfactorio. herramienta de ETL de class: será el nombre de la clase de nuestro código nativo, sin tener en cuenta el nombre del paquete. Pentaho! method: será el nombre de la acción que se va a tener en cuenta en el método "execute" de la clase anterior que » Primeros pasos de queremos invocar. MapReduce con Hadoop [arguments]]: será un array, generalmente en formato JSON, donde se le pasan todos los parámtros de entrada al 1 of 6 26/03/14 15:22 Crear un plugin para Android en PhoneGap http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pag... PUSH THIS Page Pushers Community Help? ---- 0 people brought clicks to this page no clicks + + + + + + + + powered by karmacracy » Primeros pasos con Hadoop: método invocado. instalación y configuración en Linux Por tanto lo primero que vamos a hacer es crear nuestro fichero js con la llamada al código nativo. Para ello dentro de la carpeta "send-mail-cordova-plugin" creamos otra carpeta llamada "www" y dentro creamos el fichero "sendmail.js" con el siguiente contenido: Últimos Tutoriales del view plain print ? Autor 01. var sendmail = { 02. 03. send: function(successCallback, errorCallback, subject, body, sender, password, recipients){ » Intercomunicación de 04. cordova.exec(successCallback, 05. errorCallback, aplicaciones en IOS 06. "SendMail", 07. "send", » Crashlytics en IOS 08. [{ 09. "subject":subject, » Acceso a la cámara con 10. "body":body, PhoneGap 11. "sender":sender, 12. "password":password, » Empezando con PhoneGap 13. "recipients":recipients 14. }] » Hello World en IOS sin 15. ); 16. StoryBoard 17. } 18. } 19. 20. module.exports = sendmail; En la llamada estamos indicando que vamos a tener una clase llamada "SendMail" con la acción "send" que será el encargado de recoger los argumentos y realizar el envio del email. Además fijaos en la forma de pasar los argumentos para que se recojan en formato JSON. Por tanto el siguiente paso lógico es crear la clase especificada. Para ello dentro de la carpeta "send-mail-cordova-plugin" vamos a crear otra llamada "src" y dentro de esta otra llamada "android" para distinguir las plataformas por si queremos extender la funcionalidad de este plugin a otras plataformas soportadas como IOS o Windows Phone. Dentro de la carpeta "android" vamos a crear el fichero SendMail.java. En este punto os podéis apoyar en vuestro IDE favorito para implementar el código. Para la implementación del método me he apoyado en un código que me pasó nuestra genial mañica con su no menos genial twitter @Sara_Subidon y el no menos único y genial @ifdezmolina ;-) view plain print ? 01. package com.autentia.plugin.sendmail; 02. 03. import org.apache.cordova.CallbackContext; 04. import org.apache.cordova.CordovaPlugin; 05. import org.json.JSONArray; 06. import org.json.JSONException; 07. import org.json.JSONObject; 08. 09. public class SendMail extends CordovaPlugin { 10. 11. public static final String ACTION_SEND = "send"; 12. 13. public boolean execute(String action, JSONArray jsonArgs, 14. CallbackContext callbackContext) throws JSONException { 15. try { 16. if (ACTION_SEND.equals(action)) { 17. JSONObject args = jsonArgs.getJSONObject(0); 18. String subject = args.getString("subject"); 19. String body = args.getString("body"); 20. String sender = args.getString("sender"); 21. String password = args.getString("password"); 22. String recipients = args.getString("recipients"); 23. 24. GMailSender gmailSender = new GMailSender( 25. sender, password); 26. 27. gmailSender.sendMail(subject, body, sender, recipients); 28. 29. } 30. callbackContext.success(); 31. return true; 32. } catch (Exception e) { 33. callbackContext.error(e.getMessage()); 34. return false; 35. } 36. } 37. } Como vemos no es más que una clase Java que extiende de la clase abstracta CordovaPlugin que hace que tenga que implementar el método "execute". En este método distinguimos por el nombre de la acción que le pasamos, dependiendo del resultado de la acción devolvemos true o false y llamaremos al correspondiente callback. También tenemos que fijarnos en cómo recupera los argumentos de entrada en JSON a sus respectivas variables String. Este código tiene dependencias con otras clases y librerías; por lo tanto tenemos que incluirlas en nuestro plugin. Para incluir las clases vamos a crear a la misma altura que "SendMail.java" el fichero "GMailSender.java" el cual contiene el siguiente código: 2 of 6 26/03/14 15:22 Crear un plugin para Android en PhoneGap http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pag... view plain print ? 01. package com.autentia.plugin.sendmail; 02. 03. import java.io.ByteArrayInputStream;