SDKs:Push:Android:index
Contenido
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 .
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 NUESTRO PANEL
Para poder configurar las notificaciones Push en una aplicación, debemos de haberla añadido previamente a nuestro panel. Si aún no la tenemos creada, lo haremos desde la sección Mis Aplicaciones del panel, pulsando en Crear Aplicación.
Rellenamos los datos necesarios y enviamos el formulario.
Una vez creada la aplicación, iremos a la sección Mis Aplicaciones del panel y pulsaremos Añadir app a push.
Seleccionamos nuestra aplicación y añadimos el token de la Clave de servidor proporcionado por Google en la consola de Firebase.
Una vez añadida la app, procederemos a configurar nuestro proyecto en Android Studio antes de comenzar con las notificaciones.
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 disponemos. 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:
Disponemos 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, un ejemplo válido sería el siguiente:
com.mobeleader.push.PushLib = pl = new com.mobeleader.push.PushLib(); pl.registerPush(this, "app_hash", R.drawable.logo_push_bgn, R.drawable.ic_launcher);
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 ):
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);