Mensajes dentro de la aplicación
Más información sobre los mensajes dentro de la aplicación y cómo configurarlos para el SDK de Braze.
Requisitos previos
Antes de poder utilizar esta característica, tendrás que integrar el SDK de Android Braze. You’ll also need to enable in-app messages.
Message types
Braze ofrece varios tipos predeterminados de mensajes dentro de la aplicación, cada uno personalizable con mensajes, imágenes, iconos Font Awesome, acciones de clic, análisis, esquemas de color y mucho más.
Su comportamiento y rasgos básicos están definidos por la interfaz IInAppMessage
en una subclase llamada InAppMessageBase
. IInAppMessage
también incluye una subinterfaz, IInAppMessageImmersive
que te permite añadir a tu aplicación botones de cierre, clic-acción y análisis.
Ten en cuenta que los mensajes dentro de la aplicación que contengan botones incluirán el mensaje clickAction
en la carga útil final si la acción de clic se añade antes de añadir el texto del botón.
modal
Los mensajes dentro de la aplicación aparecen en el centro de la pantalla y están enmarcados por un panel translúcido. Son útiles para una mensajería más crítica y pueden equiparse con dos botones de acción de clic y habilitación de análisis.
Este tipo de mensaje es una subclase de InAppMessageImmersiveBase
una clase abstracta que implementa IInAppMessageImmersive
, dándote la opción de añadir funcionalidad personalizada a tus mensajes dentro de la aplicación generados localmente.
full
Los mensajes dentro de la aplicación son útiles para maximizar el contenido y el impacto de tu comunicación con el usuario. La mitad superior de un mensaje dentro de la aplicación full
contiene una imagen, y la mitad inferior muestra texto y hasta dos botones de acción de clic y habilitación de análisis.
Este tipo de mensaje amplía InAppMessageImmersiveBase
ofreciéndote la posibilidad de añadir funciones personalizadas a tus mensajes dentro de la aplicación generados localmente.
HTML
Los mensajes dentro de la aplicación son útiles para crear contenido de usuario totalmente personalizado. El contenido HTML de los mensajes dentro de la aplicación, definido por el usuario, se muestra en WebView
y puede contener opcionalmente otros contenidos enriquecidos, como imágenes y fuentes, lo que permite un control total sobre el aspecto y la funcionalidad de los mensajes.
Estos mensajes son instancias de InAppMessageHtml
que implementan la subclase IInAppMessage
: IInAppMessageHtml
.
Los mensajes dentro de la aplicación Android admiten una interfaz JavaScript brazeBridge
para llamar a métodos del SDK Braze Web desde dentro de tu HTML, consulta nuestras mejores prácticas para más detalles.
Actualmente no admitimos la visualización de mensajes HTML personalizados dentro de la aplicación en un iFrame en las plataformas iOS y Android.
También puedes definir vistas de mensajes dentro de la aplicación personalizadas para tu aplicación. Para un recorrido completo, consulta Configurar fábricas personalizadas.
Enabling in-app messages
Step 1: Register BrazeInAppMessageManager
In-app message display is managed by the BrazeInAppMessageManager
class. Every activity in your app must be registered with the BrazeInAppMessageManager
to allow it to add in-app message views to the view hierarchy. There are two ways to accomplish this:
The activity lifecycle callback integration handles in-app message registration automatically; no extra integration is required. This is the recommended method for handling in-app message registration.
If you’re using activity lifecycle callback for automatic registration, do not complete this step.
In your Application.onCreate()
, call ensureSubscribedToInAppMessageEvents()
:
1
BrazeInAppMessageManager.getInstance().ensureSubscribedToInAppMessageEvents(context);
1
BrazeInAppMessageManager.getInstance().ensureSubscribedToInAppMessageEvents(context)
In every activity where in-app messages can be shown, call registerInAppMessageManager()
in that activity’s onResume()
:
1
2
3
4
5
6
7
@Override
public void onResume() {
super.onResume();
// Registers the BrazeInAppMessageManager for the current Activity. This Activity will now listen for
// in-app messages from Braze.
BrazeInAppMessageManager.getInstance().registerInAppMessageManager(activity);
}
1
2
3
4
5
6
public override fun onResume() {
super.onResume()
// Registers the BrazeInAppMessageManager for the current Activity. This Activity will now listen for
// in-app messages from Braze.
BrazeInAppMessageManager.getInstance().registerInAppMessageManager(this)
}
In every activity where registerInAppMessageManager()
was called, call unregisterInAppMessageManager()
in that activity’s onPause()
:
1
2
3
4
5
6
@Override
public void onPause() {
super.onPause();
// Unregisters the BrazeInAppMessageManager for the current Activity.
BrazeInAppMessageManager.getInstance().unregisterInAppMessageManager(activity);
}
1
2
3
4
5
public override fun onPause() {
super.onPause()
// Unregisters the BrazeInAppMessageManager.
BrazeInAppMessageManager.getInstance().unregisterInAppMessageManager(this)
}
Step 2: Update the manager’s blocklist (optional)
In your integration, you may require that certain activities in your app should not show in-app messages. The activity lifecycle callback integration provides an easy way to accomplish this.
The following sample code adds two activities to the in-app message registration blocklist, SplashActivity
and SettingsActivity
:
1
2
3
4
5
6
7
8
9
10
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
Set<Class> inAppMessageBlocklist = new HashSet<>();
inAppMessageBlocklist.add(SplashActivity.class);
inAppMessageBlocklist.add(SettingsActivity.class);
registerActivityLifecycleCallbacks(new BrazeActivityLifecycleCallbackListener(inAppMessageBlocklist));
}
}
1
2
3
4
5
6
7
8
9
class MyApplication : Application() {
override fun onCreate() {
super.onCreate()
val inAppMessageBlocklist = HashSet<Class<*>>()
inAppMessageBlocklist.add(SplashActivity::class.java)
inAppMessageBlocklist.add(SettingsActivity::class.java)
registerActivityLifecycleCallbacks(BrazeActivityLifecycleCallbackListener(inAppMessageBlocklist))
}
}
guide/swift/in_app_messages.md developer_ %}
guide/web/in_app_messages.md developer_ %}
guide/android_ott/in_app_messages.md developer_ %}
guide/cordova/in_app_messages.md developer_ %}
guide/flutter/in_app_messages.md developer_ %}
guide/react_native/in_app_messages.md developer_ %}
guide/roku/in_app_messages.md developer_ %}
guide/tvos/in_app_messages.md developer_ %}
guide/unity/in_app_messages.md developer_ %}
guide/xamarin/in_app_messages.md developer_ %}