Personaliza tus mensajes de Firebase In‑App Messaging


Firebase In‑App Messaging ofrece un conjunto útil de comportamientos y tipos de mensajes preconfigurados con un aspecto y estilo predeterminados. Sin embargo, en algunos casos, puede ser conveniente que amplíes los comportamientos y el contenido de los mensajes. In-App Messaging te permite agregar acciones a los mensajes y personalizar su aspecto y estilo.

Agrega una acción a tu mensaje

Con las acciones, puedes usar los mensajes desde la app para dirigir a los usuarios a un sitio web o una pantalla específica de ella.

Firebase In-App Messaging usa controladores de vínculos para procesar acciones. El SDK puede usar varios controladores, por lo que, si tu app ya tiene uno, Firebase In-App Messaging puedes usarlo sin ninguna configuración adicional. Si aún no si tienes un controlador, puedes usar Firebase Dynamic Links. Para obtener más información, lee Crea Dynamic Links en iOS.

Agrega la acción a tu mensaje con la consola de Firebase.

Cuando tu app tenga un controlador de vínculos, podrás redactar una campaña con una acción. Abre la consola de Firebase para Mensajes, crear una campaña nueva o editar una existente. En esa campaña, proporciona una tarjeta, un texto y una acción para el botón, una acción de imagen o un banner. action, en la que la acción es un vínculo directo relevante.

El formato de la acción depende del diseño que elijas para el mensaje. Los mensajes modales tienen botones de acción con texto, color de texto y color de fondo personalizables. En cambio, las imágenes y los banners superiores son interactivos y permiten invocar la acción especificada cuando se presionan.

Modifica el aspecto y estilo de los mensajes

Firebase In-App Messaging te permite personalizar pantallas de mensajes para cambiar la forma en que se renderiza tu app mensajes el diseño, los estilos de fuente, las formas de los botones y otros detalles. Existen dos formas de modificar las pantallas de mensajes: modificar el Firebase In-App Messaging predeterminado o crear tu propia biblioteca de pantallas de mensajes desde cero.

Nota: Este producto no está disponible en macOS, Mac Catalyst, App Clips ni watchOS.

Modifica las pantallas predeterminadas

La forma más directa de personalizar tus mensajes es basarse en Es el código predeterminado de visualización de mensajes de Firebase In-App Messaging.

Clona el repositorio firebase-ios-sdk

Para comenzar, clona la versión más reciente del repositorio firebase-ios-sdk y abre el directorio InAppMessaging.

Selecciona los tipos de mensajes que modificarás

Con el repositorio clonado, puedes modificar cualquiera o todos los tipos de mensajes Firebase In-App Messaging: Card, Modal, Banner y ImageOnly. Cada tipo corresponde a un diseño de mensaje en el flujo de creación de la campaña Firebase In-App Messaging.

En consecuencia, cada tipo tiene acceso a un conjunto diferente de datos, determinado por Opciones de personalización de la campaña en la consola de Firebase:

Tipo titleText bodyText textColor backgroundColor imageData actionButton secondaryActionButton
Card
Modal
Banner
ImageOnly

Modifica el código de procesamiento de pantallas de mensajes

Con las limitaciones de los tipos de mensajes en mente, tienes la libertad de modificarlos como quieras. Puedes crear un banner que se muestre en la parte inferior de tu app, desplazar el botón de acción en una modal, incorporar el mensaje desde la app en el feed de un usuario o hacer cualquier otra modificación necesaria para ajustar el aspecto y estilo de los mensajes a tu app.

Hay dos elementos principales a los que se debe prestar atención cuando se modifican las pantallas de mensajes:

  • Directorios de tipos de mensajes: Cada tipo de mensaje tiene un directorio independiente con archivos que determinan la lógica del tipo:
  • Storyboard: La biblioteca InAppMessaging también tiene un archivo .storyboard que ayuda a definir la IU de los tres tipos de mensajes:

Modifica archivos en los directorios de tus tipos de mensajes preferidos y en las secciones del .storyboard correspondientes para crear las pantallas de mensajes personalizadas.

Actualiza el podfile para que use tu código InAppMessaging modificado

Para que Firebase In-App Messaging use tus pantallas de mensajes modificadas en lugar de las predeterminadas actualiza tu podfile para usar tu biblioteca InAppMessaging personalizada:

# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'

target 'YourProject' do
# Comment the next line if you're not using Swift and don't want to use dynamic frameworks
use_frameworks!

# Pods for YourProject
pod 'Firebase'

# Remove the default InAppMessaging pod:
# pod 'Firebase/InAppMessaging'

# Overwrite it with a version that points to your local copy:
pod `FirebaseInAppMessaging', :path => '~/Path/To/The/Cloned/Repo/'

end
Con eso listo, puedes actualizar tus pods, remodelar tu app y ver tus nuevas pantallas de mensajes personalizadas.

Crea tu propia biblioteca de pantallas de mensajes

No estás obligado a trabajar desde la biblioteca InAppMessaging para crear una IU a fin de mostrar los mensajes. También puedes escribir tu propio código desde cero.

Compila una clase que implemente el protocolo InAppMessagingDisplay

Firebase In-App Messaging usa la clase InAppMessaging para controlar las comunicaciones entre Servidores de Firebase y tu app. Esa clase, a su vez, usa InAppMessagingDisplay para mostrar los mensajes que recibe. Para crear tu propia biblioteca de pantallas, escribe una clase que implemente ese protocolo.

La definición y documentación del protocolo para adecuarse a él están en el archivo FIRInAppMessagingDisplay.h de la biblioteca InAppMessaging.

Configura messageDisplayComponent para usar tu biblioteca de pantallas de mensajes

InAppMessaging usa su propiedad messageDisplayComponent para determinar qué objeto usar cuando muestra mensajes. Configura esa propiedad en un objeto de tu pantalla de mensajes, de modo que Firebase In-App Messaging sepa que debe usar tu biblioteca para renderizar mensajes:

InAppMessaging.inAppMessaging().messageDisplayComponent = yourInAppMessagingRenderingInstance