Integração de mensagens no app
Este artigo de referência aborda como integrar o envio de mensagens no app em seu aplicativo para Android ou FireOS.
As mensagens no app ajudam a levar conteúdo aos seus usuários sem interromper o dia deles com uma notificação por push. Mensagens no app personalizadas e sob medida aprimoram a experiência do usuário e ajudam o público a obter o máximo valor do seu app. Com vários layouts e ferramentas de personalização para escolher, as mensagens no app engajam seus usuários mais do que nunca.
Para ver exemplos de mensagens no app, confira nossos estudos de caso.
Tipos de mensagens no app
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, estilo editável e esquemas de cores. Os tipos disponíveis atualmente são:
Também é possível definir sua própria exibição personalizada de mensagens no app.
Todas as mensagens no app implementam a interface IInAppMessage
que define o comportamento e as características básicas de todas as mensagens no app. InAppMessageBase
é uma classe abstrata que implementa IInAppMessage
e fornece a implementação básica de mensagens no app. Todas as classes de mensagens no app são subclasses de InAppMessageBase
.
Além disso, há uma subinterface de IInAppMessage
chamada IInAppMessageImmersive
que adiciona botões de ação de clique e de análise de dados ativados, bem como texto de cabeçalho e um botão de fechar.
Para mensagens no app contendo botões, a mensagem clickAction
também será incluída na carga útil final se a ação de clique for adicionada antes de adicionar o texto do botão.
InAppMessageImmersiveBase
é uma classe abstrata que implementa IInAppMessageImmersive
e fornece a implementação fundamental da mensagem no app immersive
. As mensagens no app Modal
são uma subclasse de InAppMessageImmersiveBase
.
As mensagens no app em HTML são instâncias InAppMessageHtml
, que implementam IInAppMessageHtml
, outra subclasse de IInAppMessage
.
Comportamentos esperados por tipo de mensagem
É assim que seus usuários abrem um dos nossos tipos de mensagem no app padrã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.
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.
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.
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.
Definição de tipos de mensagens no app personalizadas
O objeto de mensagem no app slideup
estende InAppMessageBase
.
As mensagens do tipo full
e modal
se estendem InAppMessageImmersiveBase
. A extensão de uma dessas classes lhe dá a opção de adicionar funcionalidade personalizada às mensagens no app geradas localmente.
Integração
Etapa 1: Registro do gerenciador de mensagens no app do Braze
A exibição de mensagens no app é gerenciada pela classe BrazeInAppMessageManager
. Todas as atividades do seu app devem ser registradas no site BrazeInAppMessageManager
para permitir que ele adicione visualizações de mensagens no app à hierarquia de visualizações. Há duas maneiras de fazer isso:
Integração de retorno de chamada do ciclo de vida da atividade (recomendado)
A integração do retorno de chamada do ciclo de vida da atividade lida automaticamente com o registro de mensagens no app; não é necessária nenhuma integração extra. Essa é a integração recomendada para lidar com o registro de mensagens no app.
Registro manual de mensagens no app
Se você fez a integração do ciclo de vida da atividade, não deve fazer uma integração manual de mensagens no app.
Primeiro, em Application.onCreate()
, chame ensureSubscribedToInAppMessageEvents()
:
1
BrazeInAppMessageManager.getInstance().ensureSubscribedToInAppMessageEvents(context);
1
BrazeInAppMessageManager.getInstance().ensureSubscribedToInAppMessageEvents(context)
Em seguida, em todas as atividades em que as mensagens no app podem ser exibidas, registerInAppMessageManager()
deve ser chamado no onResume()
dessa atividade:
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)
}
Por fim, em todas as atividades em que registerInAppMessageManager()
foi chamado, unregisterInAppMessageManager()
deve ser chamado no onPause()
da atividade:
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)
}
Etapa 2: Lista de bloqueio do gerenciador de mensagens no app (opcional)
Em sua integração, você pode exigir que determinadas atividades em seu app não mostrem mensagens no app. A integração do retorno de chamada do ciclo de vida da atividade oferece uma maneira fácil de fazer isso.
O código de exemplo a seguir adiciona duas atividades à lista de bloqueio de registro de mensagens no app: SplashActivity
e 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))
}
}