SDKs:Push:Android:index
CÓMO AGREGAR LA LIBRERÍA PUSHLIB EN ANDROID
INTRODUCCIÓN.
Esta librería usa el sistema FCM ( FireBase Cloud Messaging ) de Google. Lo primero que realiza es la recogida del Token de envío de FCM de cada terminal por aplicación para registrarlo en nuestro sistema. Una vez registrado, se le pueden enviar las notificaciones que desee y que la librería las reciba y las muestre.
VERSIONES DE ANDROID SOPORTADAS
Esta librería requiere de dispositivos con Android 2.3 o superior que también tengan la app Google Play Store instalada o un emulador con Android 2.3 con las API de Google.
PASOS A REALIZAR EN GOOGLE
Para agregar esta librería, lo primero que debemos hacer es decirle a Google que vamos a usar el sistema FCM. Para ello nos vamos a Google Firebase Console .
[1](https://console.firebase.google.com/?hl=es)
Una vez dentro, creamos un nuevo proyecto pinchando en el botón Crear Nuevo Proyecto.
Introducimos el nombre de nuestra aplicación y seleccionamos la región ( NOTA: Es muy importante que la región sea real )
Una vez creada la aplicación, deberemos seleccionar la opción de Añade Firebase a tu aplicación Android.
En el primer paso, deberemos de introducir el nombre del paquete en el que la aplicación va a ser desarrollada. Al finalizar este primer paso, se descargará automáticamente un archivo llamado google-services.json. De momento no haremos nada con dicho archivo.
En el segundo paso, se muestra como ha de estar configurado el archivo google-services.json dentro del proyecto de Android Studio.
En el tercer y último paso para añadir Firebase a la aplicación de Android, se expone como han de ser los archivos build.gradle tanto del proyecto como el propio del paquete app.
Al finalizar con los pasos expuestos en las anteriores imágenes, aparecerá la aplicación añadida a nuestro proyecto en la consola de Firebase. A continuación haremos click en las opciones y daremos a Administrar.
Dentro de la configuración de nuestra aplicación, veremos en la parte superior una opción llamada Mensajería en la nube. Deberemos acceder a este apartado para recoger la Clave del Servidor que nos ha proporcionado Google que nos servirá para poder autorizar las notificaciones a nuestra aplicación.
PASOS A REALIZAR EN EL PANEL MOBELEADER
Para poder configurar las notificaciones Push en una aplicación, ha de crearla previamente en el Panel Mobeleader. Si aún no tiene creada la aplicación, diríjase a la sección Aplicaciones del Panel Mobeleader y pulse en Crear Aplicación.
Una vez dentro, vamos a la sección de Desarrolladores y hacemos click en Mis Apps —> Crear Aplicación
Rellenamos todos los datos necesarios y le damos a Crear la aplicación.
Una vez creada la aplicación, iremos a Notificaciones Push —> Añadir app a push, ubicado dentro de la sección de Desarrolladores.
PASOS A REALIZAR PARA LA INSTALACIÓN DE LA LIBRERÍA EN LA APLICACIÓN
INSTALACIÓN:
Podemos instalar la librería PushLib haciendo uso del maven del que dispone Mobeleader. Independientemente del metodo que usemos para instalar la librería, inicialmente deberemos instalar todas las librerías necesarias para que la librería push pueda usar el FCM. Desde el SDK Manager, haremos click en SDK Tools, desplegaremos la opción de Support Repository e instalaremos lo referente a Google Repository:
Mobeleader dispone de un repositorio maven para poder usar en Android Studio, para ello deberemos insertar lo siguiente en el archivo “build.gradle” de nuestra aplicación:
- En el apartado de repositories añadiremos:
repositories { mavenCentral() maven { url 'http://maven.mobeleader.com' } }
- En la parte de “dependencies” añadiremos las dependencias necesarias para usar la librería PushLib con FCM. Serán tanto las tres librerías de mobeleader: UtilsLib, RegisterLib PushLib; como las propias dependencias para usar la mensajería FCM de Google.
//noinspection GradleDynamicVersion implementation 'com.mobeleader.push:PushLib:+' //noinspection GradleDynamicVersion implementation 'com.mobeleader.utils:UtilsLib:+' //noinspection GradleDynamicVersion implementation 'com.mobeleader.register:RegisterLib:+' implementation 'com.google.firebase:firebase-messaging:17.3.0'
- En la parte final del fichero, deberemos insertar lo siguiente:
apply plugin: 'com.google.gms.google-services'
Independientemente del metodo que usemos para instalar la librería push, en el fichero “build.gradle” de nuestro proyecto deberemos insertar la siguiente dependencia:
dependencies { classpath 'com.google.gms:google-services:3.2.0' }
Por último, deberemos configurar el AndroidManifest.xml de la siguiente manera:
- Añadiremos el permiso de vibrar para las notificaciones.
<uses-permission android:name="android.permission.VIBRATE" />
- Introduciremos en la parte de <application los siguientes servicios:
<service android:name="com.mobeleader.push.PushLibFirebaseInstanceIdService" android:permission="android.permission.INTERNET"> <intent-filter> <action android:name="com.google.firebase.INSTANCE_ID_EVENT" /> </intent-filter> </service> <service android:name="com.mobeleader.push.PushLibFirebaseMessagingService" android:permission="android.permission.INTERNET"> <intent-filter> <action android:name="com.google.firebase.MESSAGING_EVENT" /> </intent-filter> </service>
LANZAMIENTO
Una vez hayamos añadido la librería y configurado todo lo necesario, en nuestro proyecto deberemos añadir las siguientes linea en el onCreate del Activity principal:
com.mobeleader.push.PushLib pl = new com.mobeleader.push.PushLib();
pl.registerPush(this, hash_app, icono_notificacion_pequeño, icono_notificacion_grande)
Las variables han de ser las siguientes:
- HASH APP - Será el hash proporcionado por Mobeleader a la hora de crear la aplicación. Para obtener dicho hash deberemos ir al Panel Mobeleader, a la sección de _Desarrolladores —> Mis Apps_ y hacer click en la columna Hash.
- ICONO NOTIFICACION PEQUEÑO: Es el drawable que aparecerá arriba en el panel de notificaciones cuando salte la notificación ( suele ser un icono en colores blancos), ejemplo:
R.drawable.ic_launcher_white_transparent
- ICONO NOTIFICACION GRANDE: Es el drawable que aparecerá cuando despliegues la barra de notificaciones, ejemplo:
R.drawable.ic_launcher
De ésta manera, la siguiente imagen sería un ejemplo válido:
LISTENERS
La librería Push está dotada de varios listeners. Los listeners en cuestión son los siguientes:
- getVersion: Notifica la versión de la librería actual cuando se lanza.
- onGetToken: Notifica cuando la librería ha recibido el Token (Para rescatar este token y poder hacer pruebas con él) y devuelve el Token registrado en el argumento String.
- onRegisterToken: Notifica cuando la librería ha registrado el Token, y devuelve el Token en el argumento String.
- onUpdateToken: Notifica cuando la librería ha actualizado el Token, y devuelve el Token antiguo en el argumento String oldToken y el Token nuevo en el argumento String newToken.
- onUpdateSettings: Notifica cuando la librería ha actualizado parámetros de versión, aplicación …
- onError: Notifica cuando la librería ha tenido algún error, y devuelve la descripción del error en el argumento String.
- onReceiveMessage: Notifica cuando la librería ha recibido un mensaje creado desde el _Panel Mobeleader_ y devuelve dicho mensaje con sus datos en el argumento Map<String, String> notificationMap.
- onReceiveNotification: Notifica cuando la librería ha recibido una notificación desde la consola de Firebase de Google y devuelve la notificación en el argumento RemoteMessage.Notification notification.
Para poder acceder a los listeners, la llamada a la librería Push deberá realizarse de la siguiente manera ( podemos implementar los listeners que queramos, no hará falta implementar todos ):
com.mobeleader.push.PushLib pl = new com.mobeleader.push.PushLib();
pl.setPushLibListener(new com.mobeleader.push.PushLibListener() { @Override public void getVersion(String version){}
@Override public void onGetToken(String token){}
@Override public void onUpdateToken(String oldToken, String newToken){}
@Override public void onUpdateSettings(){}
@Override public void onError(String Error){}
@Override public void onReceiveMessage(Map<String, String> notificationMap){}
@Override public void onReceiveNotification(RemoteMessage.Notification notification){} )};
pl.registerPush(this, hash_app, icono_notificacion_pequeño, icono_notificacion_grande);