Mensagem no app
Saiba mais sobre mensagens no app e como configurá-las para o Braze SDK.
Pré-requisitos
Antes de poder usar esse recurso, você precisará integrar o Android Braze SDK. You’ll also need to enable in-app messages.
Message types
O Braze oferece vários tipos de mensagens no app padrão, cada uma personalizável com mensagens, imagens, ícones Font Awesome, ações de clique, análises de dados, esquemas de cores e muito mais.
Seu comportamento básico e suas características são definidos pela IInAppMessage
em uma subclasse chamada InAppMessageBase
. IInAppMessage
também inclui uma subinterface, IInAppMessageImmersive
que permite adicionar botões de fechar, de ação de clique e de análise de dados ao seu app.
Lembre-se de que as mensagens no app que contêm botões incluirão a mensagem clickAction
na carga útil final se a ação de clique for adicionada antes da adição do texto do botão.
modal
As mensagens no app aparecem no centro da tela e são emolduradas por um painel translúcido. Úteis para o envio de mensagens mais críticas, eles podem ser equipados com dois botões de ação por clique e com análise de dados ativada.
Esse tipo de mensagem é uma subclasse de InAppMessageImmersiveBase
uma classe abstrata que implementa IInAppMessageImmersive
, dando-lhe a opção de adicionar funcionalidade personalizada às mensagens no app geradas localmente.
full
As mensagens no app são úteis para maximizar o conteúdo e o impacto da sua comunicação com o usuário. A metade superior de uma mensagem no app full
contém uma imagem, e a metade inferior exibe texto e até dois botões de ação de clique e de análise de dados.
Esse tipo de mensagem estende InAppMessageImmersiveBase
dando-lhe a opção de adicionar funcionalidade personalizada às mensagens no app geradas localmente.
HTML
As mensagens no app são úteis para criar conteúdo totalmente personalizado para o usuário. O conteúdo HTML definido pelo usuário da mensagem no app é exibido em WebView
e pode, opcionalmente, conter outros conteúdos avançados, como imagens e fontes, permitindo controle total sobre a aparência e a funcionalidade da mensagem.
Essas instâncias de mensagens de InAppMessageHtml
que implementam a subclasse IInAppMessage
: IInAppMessageHtml
.
As mensagens no app Android suportam uma interface JavaScript brazeBridge
para chamar métodos no Braze Web SDK a partir do seu HTML; consulte nossas práticas recomendadas para obter mais detalhes.
Atualmente, não oferecemos suporte à exibição de mensagens no app em HTML personalizado em um iFrame nas plataformas iOS e Android.
Você também pode definir exibições personalizadas de mensagens no app para o seu aplicativo. Para obter um passo a passo completo, consulte Configuração de 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_ %}