Envío de notificaciones push de Android con Firebase Cloud Messaging

Autor: Louise Ward
Fecha De Creación: 4 Febrero 2021
Fecha De Actualización: 1 Mes De Julio 2024
Anonim
Envío de notificaciones push de Android con Firebase Cloud Messaging - Aplicaciones
Envío de notificaciones push de Android con Firebase Cloud Messaging - Aplicaciones

Contenido


Aunque está más allá del alcance de este tutorial, también puede usar FCM para notificaciones ascendentes, donde FCM recibe una de la aplicación cliente o para notificar a su aplicación cuando hay nuevos datos disponibles para descargar. De esta manera, puede garantizar que la comunicación entre el servidor de aplicaciones y la aplicación cliente se produzca solo cuando sea necesario, lo cual es mucho más eficiente que la aplicación cliente que se pone en contacto con el servidor a intervalos regulares, en caso de que haya algunos datos nuevos disponibles.

Dado que FCM es parte de Firebase, también funciona muy bien con otros servicios de Firebase. Una vez que haya dominado los elementos esenciales de FCM, es posible que desee utilizar las Pruebas A / B para identificar qué notificaciones son las más efectivas, o utilizar las Predicciones de Firebase para aplicar el aprendizaje automático de gran alcance a todos los datos analíticos generados a partir de sus diversas campañas de FCM.


FCM admite dos tipos de s:

  • Notificación s. La aplicación cliente se comportará de manera diferente dependiendo de si está en segundo plano o en primer plano cuando recibe el FCM. Si su aplicación está en segundo plano, Firebase SDK procesará automáticamente y la mostrará como una notificación en la bandeja del sistema del dispositivo. Dado que el sistema Android crea la notificación por usted, esta es una de las formas más fáciles de enviar notificaciones push a sus usuarios. Si su aplicación recibe un FCM mientras está en primer plano, entonces el sistema no maneje esta notificación automáticamente, dejándole procesar la devolución de llamada onReceived () de su aplicación. Exploraremos onReceived () más adelante en este tutorial, pero por ahora solo tenga en cuenta que si su aplicación recibe un momento está en primer plano, entonces, de forma predeterminada, esto no se mostrará al usuario.
  • Datos s. A diferencia de las notificaciones, puede usar datos para enviar elementos de datos personalizados a la aplicación cliente. Sin embargo, FCM establece un límite de 4KB en estos datos, por lo que si su carga útil supera los 4KB, deberá obtener los datos adicionales mediante WorkManager o la API JobScheduler.

En este tutorial, nos centraremos en las notificaciones.


¿Qué pasa con Google Cloud Messaging?

Si está utilizando el servidor de Google Cloud Messaging (GCM) y las API del cliente, entonces hay algunas malas noticias: este servicio ya ha quedado en desuso y Google planea desactivar "la mayoría" de los servicios de GCM en abril de 2019. Si todavía usando GCM, entonces debería comenzar a migrar sus proyectos a FCM ahora, y debe haber completado su migración en abril de 2019.

Agregar Firebase a tu proyecto de Android

Veamos qué fácil es agregar soporte FCM básico a su aplicación y luego usarlo para enviar notificaciones push a sus usuarios.

Como FCM es un servicio de Firebase, deberá agregar Firebase a su aplicación:

  • Dirígete a la consola Firebase.
  • Seleccione "Agregar proyecto" y asigne un nombre a su proyecto.
  • Lea los términos y condiciones. Si está contento de continuar, seleccione "Acepto ..." seguido de "Crear proyecto".
  • Seleccione "Agregar Firebase a su aplicación de Android".
  • Ingrese el nombre del paquete de su proyecto y luego haga clic en "Registrar aplicación".
  • Seleccione "Descargar google-services.json".
  • En Android Studio, arrastre y suelte el archivo google-services.json en el directorio "aplicación" de su proyecto.
  • Abra su archivo build.gradle a nivel de proyecto y agregue lo siguiente:

classpath com.google.gms: google-services: 4.0.1

  • Abra el archivo build.gradle de nivel de aplicación y agregue el complemento de servicios de Google, además de las dependencias para Firebase Core y FCM:

// Agregue el complemento de servicios de Google // aplique el complemento: com.google.gms.google-services ... ... ... dependencias {implementación fileTree (dir: libs, include:) // Agregue Firebase Core // implementación com.google.firebase: firebase-core: 16.0.1 // Agregar FCM // implementación com.google.firebase: firebase-messaging: 17.3.4

  • Cuando se le solicite, sincronice sus cambios.
  • A continuación, debe informar a Firebase Console que ha agregado correctamente Firebase a su proyecto. Instale su aplicación en un teléfono inteligente o tableta Android física, o en un dispositivo virtual Android (AVD).
  • De vuelta en Firebase Console, seleccione "Ejecutar aplicación para verificar la instalación".
  • Una vez que Firebase haya detectado su aplicación, verá un mensaje de "Felicitaciones". Seleccione "Continuar a la consola".

Enviar su primera notificación push con Firebase

¡Y eso es! Ahora puede enviar una notificación automática a sus usuarios, y esa notificación aparecerá en la bandeja del sistema del dispositivo (por ahora, supongamos que su aplicación no está en primer plano cuando se entrega).

Puede crear notificaciones de FCM con el Compositor de notificaciones, que está disponible a través de Firebase Console:

  • Asegúrese de que su aplicación esté instalada y ejecutándose en segundo plano, y que su dispositivo tenga una conexión a Internet activa.
  • En Firebase Console, seleccione "Cloud Messaging" en el menú de la izquierda.

  • Seleccione "Enviar su primero".
  • Déle un título y un texto de cuerpo, y luego haga clic en "Siguiente".

  • Abra el menú desplegable "Seleccionar aplicación" y elija su aplicación de la lista. Esta sección también incluye algunas opciones avanzadas que puede usar para crear notificaciones específicas, en función de factores como la versión de la aplicación, la ubicación del dispositivo y la última vez que el usuario participó en su aplicación. No utilizaremos ninguna de estas opciones en nuestra notificación de prueba, pero si desea ver lo que está disponible, seleccione "y ..." y explore el menú desplegable posterior.

  • Una vez que haya terminado de editar esta sección, haga clic en "Siguiente".
  • Suponiendo que desea enviar esto inmediatamente, abra el menú desplegable "Enviar a usuarios elegibles" y seleccione "Ahora".
  • En la esquina inferior derecha de la pantalla, haga clic en "Publicar".
  • Verifique toda la información en la ventana emergente subsiguiente y, si está contento de continuar, seleccione "Publicar".

Después de unos momentos, todos los dispositivos cliente a los que apuntaste deberían recibir esta notificación en la bandeja del sistema.

La mayoría de las veces, las notificaciones de FCM se enviarán de inmediato, pero ocasionalmente puede tardar unos minutos en llegar, así que no se asuste si su notificación se retrasa.

Establecer algunos objetivos: eventos de conversión de notificaciones

Al crear una notificación, generalmente tendrá un objetivo en mente: si eso está llevando a los usuarios de regreso a su aplicación, convenciéndolos para que salgan en una compra en la aplicación o simplemente abriendo su notificación.

Puede asignar un objetivo a su notificación, utilizando el Compositor de notificaciones, y luego realizar un seguimiento del rendimiento de esa notificación en el panel de informes de FCM.

Para establecer un objetivo, haga clic para expandir la sección "Eventos de conversión" del Compositor de navegación, luego abra el menú desplegable adjunto y elija entre los eventos de conversión disponibles.

¿Tu notificación fue un éxito?

Después de enviar una notificación, puede analizar su rendimiento en el panel de informes de FCM, que debe cargarse automáticamente cada vez que envíe un nuevo, o puede acceder al panel directamente.

Incluso si no estableció ningún objetivo de conversión explícito, aún puede evaluar si los usuarios están actuando en sus notificaciones, comparando el número de correos electrónicos entregados con el número de correos electrónicos abiertos.

También puede seleccionar cualquiera en esta lista, para ver los datos de envío, apertura y conversión como un gráfico. Si establece objetivos de conversión, aquí también encontrará las estadísticas relacionadas con esos objetivos.

¿Qué pasa si mi aplicación está en primer plano?

Las notificaciones de FCM se comportan de manera diferente según el estado de la aplicación cliente.

De forma predeterminada, su aplicación no mostrará ningún FCM que reciba mientras está en primer plano, por lo tanto, cuando envíe una, no hay garantía de que sus usuarios realmente ver ese .

Para actuar según los mensajes que recibe su aplicación mientras está en el primer plano, necesitará extender FirebaseMessagingService, anular el método onReceived y luego recuperar el contenido del archivo usando getNotification o getData, dependiendo de si está trabajando con datos o notificaciones, o ambos.

Cree una nueva clase Java llamada "MyFirebaseMessagingService" y luego agregue lo siguiente:

clase pública MyFirebaseMessagingService extiende FirebaseMessagingService {@Override public void onReceived (Remote) {super.onReceived (remote);

También deberá crear un objeto de notificación. Esta es su oportunidad de personalizar su notificación, por ejemplo, eligiendo el sonido que debería reproducirse cada vez que el usuario recibe esta notificación, o aplicando un icono de notificación personalizado. También deberá recuperar el contenido de los datos o la notificación, por ejemplo:

NotificationCompat.Builder notifyBuilder = new NotificationCompat.Builder (esto, "channel_id") .setContentTitle (remote.getNotification (). GetTitle ()) .setContentText (remote.getNotification (). GetBody ()) .setPriority (NotificationCompat.PRIORITY_DEFAULT). setStyle (new NotificationCompat.BigTextStyle ()) .setSound (RingtoneManager.getDefaultUri (RingtoneManager.TYPE_NOTIFICATION)) .setSmallIcon (R.mipmap.ic_launcher) .setAutoCancel (true); NotificationManager NoticeManager = (NotificationManager) getSystemService (Context.NOTIFICATION_SERVICE); notifyManager.notify (0, notifyBuilder.build ()); }}

Una vez que haya creado su servicio, no olvide agregarlo a su Manifiesto:

Ahora, cada vez que su aplicación reciba un FCM mientras está en primer plano, se entregará al controlador onReceived () y su aplicación tomará las medidas definidas por usted, como publicar la notificación o actualizar el contenido de su aplicación.

Notificaciones más atractivas: dirigidas a sus usuarios

Hasta ahora, hemos estado enviando la misma notificación a toda nuestra base de usuarios, pero las notificaciones son mucho más atractivas cuando están dirigidas a usuarios específicos.

Puede usar el Compositor de notificaciones para enviar diferentes notificaciones a diferentes partes de su base de usuarios. Dirígete al Compositor de notificaciones y crea tu notificación de manera normal, pero en la sección "Destino", haz clic en "y". Esto te da acceso a un nuevo menú desplegable, que contiene las siguientes opciones:

  • Versión. Esto le permite orientar o excluir dispositivos que ejecutan versiones específicas de su aplicación. Por ejemplo, puede enviar notificaciones a las personas que ejecutan la versión gratuita, alentándolos a actualizar a la versión Premium de su aplicación.
  • Idioma. Puede usar esta configuración para orientar o excluir los diferentes idiomas y configuraciones regionales que admite su aplicación, como la creación de notificaciones personalizadas para diferentes zonas horarias o idiomas.
  • Público (s) de usuario. Esto le permite orientar o excluir diferentes secciones de su audiencia. Por ejemplo, podría usar esta configuración para tentar a las personas que tienen un historial de compras en la aplicación, ofreciéndoles un descuento o llamando su atención sobre todos los nuevos y sorprendentes productos en la aplicación que acaba de lanzar.
  • Propiedad del usuario Si configuró Firebase Analytics, tendrá acceso a una variedad de información sobre su audiencia, a través de las propiedades del usuario. Puede usar estas propiedades en combinación con FCM, para enviar notificaciones específicas a secciones muy específicas de su base de usuarios, como personas de entre 25 y 34 años que estén interesadas en los deportes.
  • Predicción. Si configuró las predicciones de Firebase, puede dirigirse a los usuarios en función de la probabilidad de que participen en un comportamiento particular durante los próximos 7 días. Por ejemplo, si Predictions advierte que es probable que alguien se desconecte de tu juego móvil, entonces puedes usar FCM para invitarlo a participar en una nueva misión o enviarle dinero en el juego.
  • Última participación en la aplicación. Si un usuario no ha lanzado su aplicación por un tiempo, puede usar esta configuración para enviarle algunas notificaciones, solo para recordarle todo el excelente contenido que su aplicación tiene para ofrecer.
  • Primero abierto Esto le permite enviar notificaciones basadas en la primera vez que el usuario abrió su aplicación, por ejemplo, puede ayudar a los nuevos usuarios a ponerse al día enviándoles notificaciones que contengan consejos y sugerencias útiles.

Apuntar a un solo dispositivo con tokens de registro

Ya hemos visto cómo enviar notificaciones específicas en función de factores como la edad del usuario, sus intereses y la última vez que interactuaron con su aplicación, pero puede Obtener incluso mas especifico. En esta sección final, le mostraré cómo enviar una notificación de FCM a un soltero dispositivo.

Cuando el usuario inicia su aplicación por primera vez, el SDK de FCM genera un token de registro para esa instancia de la aplicación cliente. Puede usar FirebaseInstanceId.getInstance (). GetInstanceId () para capturar este token de registro y luego enviar una notificación a este token específico.

Tenga en cuenta que en un proyecto del mundo real, normalmente capturaría un token enviándolo a su servidor de aplicaciones y almacenándolo con su método preferido, pero para ayudar a mantener las cosas claras, simplemente imprimiré este token en Logcat de Android Studio.

Aquí está mi actividad principal completada:

importar android.support.v7.app.AppCompatActivity; importar android.os.Bundle; importar android.support.annotation.NonNull; importar android.util.Log; importar com.google.android.gms.tasks.OnCompleteListener; importar com.google.android.gms.tasks.Task; import com.google.firebase.iid.FirebaseInstanceId; importar com.google.firebase.iid.InstanceIdResult; clase pública MainActivity extiende AppCompatActivity {private static final String TAG = "MainActivity"; @Override protected void onCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceState); setContentView (R.layout.activity_main); FirebaseInstanceId.getInstance (). GetInstanceId () .addOnCompleteListener (nuevo OnCompleteListener() {@Override public void onComplete (@NonNull Task tarea) {if (! task.isSuccessful ()) {// Para hacer // return; } // Obtenga el token de ID de instancia // String token = task.getResult (). GetToken (); Cadena msg = getString (R.string.fcm_token, token); Log.d (TAG, msg); }}); }}

Abra su archivo strings.xml y cree el recurso de cadena "fcm_token" al que hacemos referencia en nuestra actividad principal:

Token FCM:% s

Ahora puede recuperar el token único de su dispositivo:

  • Instale su proyecto en el dispositivo Android conectado o AVD.
  • Abra el Logcat de Android Studio, seleccionando la pestaña "Logcat" (donde se encuentra el cursor en la siguiente captura de pantalla).

  • El token de su dispositivo se imprimirá en la sección "Depurar" de Logcat, así que abra el menú desplegable y seleccione "Depurar".

Dependiendo de la cantidad de información en su Logcat, puede ser difícil detectar la línea que está buscando. Si tiene dificultades, busque la palabra "token" o intente cerrar y volver a iniciar la aplicación.

Una vez que haya recuperado el token, puede usarlo para enviar una notificación push a este dispositivo en particular:

  • Dirígete a Firebase Console y selecciona tu proyecto en el menú desplegable, si aún no lo has hecho.
  • Elija "Mensajería en la nube" en el menú de la izquierda.
  • Haga clic en el botón "Nueva notificación".
  • Ingrese su título y texto, como de costumbre, pero luego haga clic en "Probar en dispositivo".

  • Copie / pegue su token en el campo "Agregar una instancia ..." y luego haga clic en el pequeño icono azul "+" que aparece.
  • Seleccione la casilla de verificación que acompaña al token.

  • Haga clic en "Prueba".

Esta notificación ahora aparecerá solo en el dispositivo cliente objetivo.

Terminando

En este artículo, le mostré cómo enviar notificaciones push de Android, utilizando Firebase Cloud Messaging, y cómo crear notificaciones dirigidas a diferentes secciones de su base de usuarios.

¿Vas a usar FCM en tus propios proyectos de Android? ¡Háganos saber en los comentarios a continuación!

El debate entre 1080p y 1440p e ha prolongado durante mucho tiempo en lo círculo de teléfono inteligente. ¿Puede notar la denidad de píxele adicional, hay una diferencia de rendimi...

¡No, no puedes disparar drones desde el cielo!

Laura McKinney

Mes De Julio 2024

Ete e un extracto de nuetra publicación completa obre Drone Ruh.Lo entiendo: hay un dron en tu vecindario, incluo obre la parte uperior de tu propiedad, que te hace entir incómodo. Nunca tol...

Asegúrate De Leer