Si bien la construcción de su aplicación para proporcionar una gran experiencia es increíblemente importante, involucrarse con usuarios nuevos y existentes es aún más importante para el éxito a largo plazo de su aplicación. En este tutorial, aprenderá cómo usar Firebase para habilitar Google Cloud Messaging y enviar notificaciones a su aplicación, y cómo permitir que los usuarios compartan su aplicación con sus contactos que usan dispositivos con Android o iOS.
Este tutorial supondrá que ya ha configurado un proyecto para Firebase y tiene acceso a la Consola de Firebase. Para aprender cómo comenzar a usar Firebase para Android, consulte uno de nuestros otros tutoriales:
Las notificaciones son una de las formas más fáciles de informar a los usuarios sobre los nuevos eventos o funciones en su aplicación y hacer que abran la aplicación nuevamente. Usando Firebase, puede enviar notificaciones a todos los usuarios o segmentos de su base de usuarios, lo que le permite personalizar lo que sus usuarios reciben y despertar su interés..
Mostrar notificaciones cuando la aplicación está en segundo plano es increíblemente fácil, ya que se maneja automáticamente por la biblioteca de mensajes de Firebase. En su aplicación, deberá incluir la biblioteca con la siguiente línea en la dependencias
nodo de tu construir.gradle archivo, y luego instalar la aplicación en un dispositivo.
compile 'com.google.firebase: firebase-messaging: 9.8.0'
A continuación, deberá ingresar a la consola Firebase y seleccionar la Notificaciones Sección en el panel de navegación izquierdo..
Una vez que esté en la sección correcta, debería ver una pantalla que le pide que envía tu primer mensaje.
Una vez que haya hecho clic en el botón azul, se lo dirigirá a un formulario que le permitirá agregar contenido a los mensajes y seleccionar qué grupos recibirán el mensaje. Al utilizar este formulario, puede especificar las condiciones booleanas que un dispositivo o usuario debe cumplir, como la ubicación geográfica o cualquier otro dato recopilado, para recibir su notificación..
Una vez que haya enviado el mensaje, debe aparecer una notificación en los dispositivos de su usuario..
Una cosa a tener en cuenta es que las notificaciones no se mostrarán a un usuario si ya están en su aplicación. Para recibir notificaciones en esta situación, deberá implementar un Servicio
que se extiende FirebaseMessagingService
.
la clase pública NotificationService extiende FirebaseMessagingService @Override public void onMessageReceived (RemoteMessage remoteMessage) super.onMessageReceived (remoteMessage);
También necesitarás incluir este Servicio
en tus AndroidManifest.xml expediente.
Ahora que tienen el marco general juntos, es hora de desarrollarse onMessageReceived
en tus FirebaseMessagingService
clase. El objetivo principal de este método es eliminar los datos enviados con el Mensaje remoto
objetar y crear una Notificación
basado en lo que recibes.
Hay mucha información que puede ser transmitida con la Mensaje remoto
. Sin embargo, la mayoría de las opciones solo están disponibles si utiliza la API de back-end de Firebase, en lugar de la consola. Desde la consola Firebase, puede configurar un título, un cuerpo de mensaje y pares clave / valor personalizados.
Registrando todos los datos disponibles de un Mensaje remoto
Se puede hacer así:
para (Map.Entryentry: remoteMessage.getData (). entrySet ()) Log.e ("Test", "Key =" + entry.getKey () + ", Value =" + entry.getValue ()); Log.e ("TutsPlus", "collapsekey:" + remoteMessage.getCollapseKey ()); Log.e ("TutsPlus", "from:" + remoteMessage.getFrom ()); Log.e ("TutsPlus", "id de mensaje:" + remoteMessage.getMessageId ()); Log.e ("TutsPlus", "tipo de mensaje ::" + remoteMessage.getMessageType ()); Log.e ("TutsPlus", "to:" + remoteMessage.getTo ()); Log.e ("TutsPlus", "tiempo de envío:" + remoteMessage.getSentTime ()); Log.e ("TutsPlus", "ttl:" + remoteMessage.getTtl ()); Log.e ("TutsPlus", "title:" + remoteMessage.getNotification (). GetTitle ()); Log.e ("TutsPlus", "body:" + remoteMessage.getNotification (). GetBody ()); Log.e ("TutsPlus", "haga clic en la acción:" + remoteMessage.getNotification (). GetClickAction ()); Log.e ("TutsPlus", "color:" + remoteMessage.getNotification (). GetColor ()); Log.e ("TutsPlus", "icon:" + remoteMessage.getNotification (). GetIcon ());
Lo que, a su vez, producirá los siguientes mensajes de registro..
E / TutsPlus: Key = custom_data_key, Value = some_value E / TutsPlus: collapsekey: com.tutsplus.tutsplusfirebasenotification E / TutsPlus: Nombre del usuario: 0: 14788128202 en el centro de la sala de juegos: 1044252370931. E / TutsPlus: a: nulo E / TutsPlus: tiempo de envío: 1478812919847 E / TutsPlus: ttl: 0 E / TutsPlus: título: Título personalizado E / TutsPlus: cuerpo: Mensaje de texto E / TutsPlus: haga clic en la acción: null E / TutsPlus: color: nulo E / TutsPlus: icono: nulo
Una vez que sepa qué información está disponible y cómo desea manejarla, puede crear y mostrar una notificación para sus usuarios..
Constructor NotificationCompat.Builder = nuevo NotificationCompat.Builder (este); builder.setContentTitle (remoteMessage.getNotification (). getTitle ()); builder.setSmallIcon (R.mipmap.ic_launcher); builder.setContentText (remoteMessage.getNotification (). getBody ()); NotificationManagerCompat.from (this) .notify (0, builder.build ());
¡Y eso es! Ahora debería poder configurar una aplicación de Android para enviar y recibir notificaciones desde la consola Firebase.
Conseguir nuevos usuarios en tu aplicación puede ser un desafío desalentador, pero el boca a boca es una excelente manera de hacer que la bola ruede. Usando Firebase, puede agregar el widget de Invitaciones a la aplicación, que permitirá a sus usuarios compartir su aplicación por correo electrónico o SMS a otros usuarios de Android o iOS.
Antes de que pueda comenzar a usar esta función, deberá importar el paquete a su proyecto agregando la siguiente línea a la dependencias
nodo de tu construir.gradle expediente.
compilar 'com.google.firebase: firebase-invite: 9.8.0'
Una vez que haya sincronizado su proyecto, podrá crear un nuevo Intención
utilizando la AppInviteInvitation.IntentBuilder
clase, que abrirá una pantalla que permite a los usuarios seleccionar contactos para invitar a la aplicación. Este constructor proporciona varias opciones para personalizar la pantalla de invitación de la aplicación:
setMessage
: Esto establecerá el mensaje que los usuarios ven y pueden enviar a los contactos por mensaje de texto o correo electrónico. Esto no puede tener más de 100 caracteres..setCustomImage
: Al usar este método, puede proporcionar un URI a una imagen personalizada que aparecerá en la pantalla de invitación e invitar correo electrónico.setCallToActionText
: Este método establece el texto para el botón de instalación en los correos electrónicos. Esto tiene un límite de 32 caracteres..setDeepLink
: Le permite proporcionar metadatos para su invitación, que se pueden recibir en la instalación para tomar acciones específicas para su usuario recién invitado.setEmailHtmlContent
: Te permite anular setMessage
, setCustomImage
, y setCallToActionText
para crear un correo electrónico con formato HTML personalizado para enviar a posibles nuevos usuarios.setEmailSubject
: Requerido si setEmailHtmlContent
se utiliza Como su nombre lo indica, esto establecerá el asunto de su correo electrónico personalizado..setOtherPlatformsTargetApplication
: Una de las opciones más interesantes, este método le permitirá asociar el ID de la aplicación del cliente Firebase para una versión de iOS de su aplicación, permitiendo a los usuarios de iOS instalar la versión adecuada si es compartido por un usuario de Android..Una vez que haya creado su Intención
, puedes lanzarlo con startActivityForResult
para ser notificado cuando el usuario haya regresado de invitar a otros.
Intención intencional = new AppInviteInvitation.IntentBuilder (getString (R.string.invitation_title)) .setMessage (getString (R.string.invitation_message)) .contenidoContenidoContenidoContenidoContenidoContenidoContenidoContenidoContenidoContenidoContenidoContenidoContenidoContenidoContenidoContenidoContenidoContenidoContenidoContenidoContenidoContenidoContenidoContenidoContenidoContenidoContenidoContenidoContenidoContenidoContenidoContenidoContenidoContenidoContenidoContenidoContenidoContenitoPaciencia (R.string.invitation_cta)) .setDeepLink (Uri.parse ("/ link")) .setOtherPlatformsTargetApplication (AppInviteInvitation.IntentBuilder.PlatformMode.PlatformMode.ProJECT_PLATFORM_IOS, getString (r.
Ahora que puedes invitar a otros usuarios a tu aplicación, tomemos un momento para centrarnos en las opciones de vinculación profunda. Cuando creas tu Intención
, eres capaz de agregar un URI
como un enlace profundo. Cuando un usuario recibe su invitación en Android, puede usar Google Play Services y la API AppInvite para interceptar esto URI
y realice una acción personalizada, como presentar una pantalla de bienvenida, para su nuevo usuario.
boolean autodeeplink = true; mGoogleApiClient = new GoogleApiClient.Builder (this) .addApi (AppInvite.API) .enableAutoManage (this, this) .build (); AppInvite.AppInviteApi.getInvitation (mGoogleApiClient, this, autodeeplink) .setResultCallback (nuevo ResultCallback() @Override public void onResult (AppInviteInvitationResult result) if (result.getStatus (). IsSuccess ()) // Obtener información de intención Intent intent = result.getInvitationIntent (); String deepLink = AppInviteReferral.getDeepLink (intención); String invitationId = AppInviteReferral.getInvitationId (intención); );
Notarás que creamos un booleano
llamado autodeeplink
. Cuando esto se establece en cierto
, El sistema Android manejará automáticamente los recibidos. URI
a través de filtros en tu AndroidManifest.xml expediente. Si se establece en falso
, puede utilizar la API AppInvite para extraer información de la invitación y realizar su acción personalizada.
En este tutorial, ha aprendido cómo implementar notificaciones de Firebase en sus aplicaciones de Android y cómo permitir que sus usuarios compartan fácilmente su aplicación con sus contactos. Comprender qué hay disponible en Firebase y cómo implementar las características generales ayudará mucho a que usted cree rápidamente las aplicaciones que la gente disfruta usar..
Para obtener más información sobre el desarrollo de Firebase o Android en general, consulte algunos de nuestros otros cursos y tutoriales aquí en Envato Tuts+.