O AppboyKit (também conhecido como Objective C SDK) não é mais suportado e foi substituído pelo Swift SDK. Ele não receberá mais novos recursos, correções de bugs, atualizações de segurança ou suporte técnico - no entanto, o envio de mensagens e a análise de dados continuarão funcionando normalmente. Para saber mais, consulte Apresentando o novo Swift SDK da Braze.
Exibição personalizada de mensagens no app
Quando o ABKInAppMessageControllerDelegate é definido, o método delegado a seguir será chamado antes que as mensagens no app sejam exibidas:
1
- (ABKInAppMessageDisplayChoice) beforeInAppMessageDisplayed:(ABKInAppMessage *)inAppMessage;
1
func beforeInAppMessageDisplayed(inAppMessage: ABKInAppMessage!) -> ABKInAppMessageDisplayChoice
Se você tiver implementado apenas ABKInAppMessageUIDelegateo método delegado da interface do usuário a seguir será chamado em seu lugar:
1
- (ABKInAppMessageDisplayChoice) beforeInAppMessageDisplayed:(ABKInAppMessage *)inAppMessage withKeyboardIsUp:(BOOL)keyboardIsUp;
1
func beforeInAppMessageDisplayed(inAppMessage: ABKInAppMessage!, withKeyboardIsUp keyboardIsUp: Bool) -> ABKInAppMessageDisplayChoice
Você pode personalizar o envio de mensagens no app implementando esse método delegado e retornando um dos seguintes valores para ABKInAppMessageDisplayChoice:
ABKInAppMessageDisplayChoice |
Comportamento |
|---|---|
Objective C: ABKDisplayInAppMessageNowSwift: displayInAppMessageNow |
A mensagem será exibida imediatamente. |
Objective C: ABKDisplayInAppMessageLaterSwift: displayInAppMessageLater |
A mensagem não será exibida e será colocada de volta no topo da pilha. |
Objective C: ABKDiscardInAppMessageSwift: discardInAppMessage |
A mensagem será descartada e não será exibida. |
Você pode usar o método delegado beforeInAppMessageDisplayed: para adicionar a lógica de exibição de mensagens no app, personalizar as mensagens no app antes que o Braze as exiba ou aceitar a lógica de exibição de mensagens no app e a interface do usuário completamente.
Confira nosso aplicativo de amostra para obter um exemplo de implementação.
Substituição de mensagens no app antes da exibição
Se quiser alterar o comportamento de exibição das mensagens no app, adicione qualquer lógica de exibição necessária ao método delegado beforeInAppMessageDisplayed:. Por exemplo, você pode querer exibir a mensagem no app na parte superior da tela se o teclado estiver sendo exibido no momento, ou pegar o modelo de dados da mensagem no app e exibir a mensagem no app você mesmo.
Se a campanha de mensagens no app não estiver sendo exibida quando a sessão for iniciada, verifique se a lógica de exibição necessária foi adicionada ao método delegado beforeInAppMessageDisplayed:. Isso permite que a campanha de mensagens no app seja exibida na parte superior da tela, mesmo que o teclado esteja sendo exibido.
Desativando o modo escuro
Para evitar que as mensagens no app adotem o estilo do modo escuro quando o dispositivo do usuário tiver o modo escuro ativado, use a propriedade ABKInAppMessage.enableDarkTheme. No método ABKInAppMessageControllerDelegate.beforeInAppMessageDisplayed: ou ABKInAppMessageUIDelegate.beforeInAppMessageDisplayed:, defina a propriedade enableDarkTheme do parâmetro inAppMessage do método como NO.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// ABKInAppMessageControllerDelegate
- (ABKInAppMessageDisplayChoice)beforeInAppMessageDisplayed:(ABKInAppMessage *)inAppMessage {
...
inAppMessage.enableDarkTheme = NO;
...
return ABKDisplayInAppMessageNow;
}
// ABKInAppMessageUIDelegate
- (ABKInAppMessageDisplayChoice)beforeInAppMesssageDisplayed:(ABKInAppMessage *)inAppMessage
withKeyboardIsUp:(BOOL)keyboardIsUp {
...
inAppMessage.enableDarkTheme = NO;
...
return ABKDisplayInAppMessageNow;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// ABKInAppMessageControllerDelegate
func before(inAppMessageDisplayed inAppMessage: ABKInAppMessage) -> ABKInAppMessageDisplayChoice {
...
inAppMessage.enableDarkTheme = false
...
return ABKInAppMessageDisplayChoice.displayInAppMessageNow
}
// ABKInAppMessageUIDelegate
func before(inAppMessageDisplayed inAppMessage: ABKInAppMessage, withKeyboardIsUp keyboardIsUp: Bool) -> ABKInAppMessageDisplayChoice {
...
inAppMessage.enableDarkTheme = false
...
return ABKInAppMessageDisplayChoice.displayInAppMessageNow
}
Ocultação da barra de status durante a exibição
Para mensagens no app Full e HTML, o SDK tentará colocar a mensagem sobre a barra de status por padrão. No entanto, em alguns casos, a barra de status ainda pode aparecer na parte superior da mensagem no app. A partir da versão 3.21.1 do SDK do iOS, é possível forçar a ocultação da barra de status ao exibir mensagens no app Full e HTML, definindo ABKInAppMessageHideStatusBarKey para YES dentro do appboyOptions passado para startWithApiKey:.
Registro de impressões e cliques
O registro de impressões e cliques em mensagens no app não é automático quando você implementa um tratamento totalmente personalizado (por exemplo, você contorna a exibição de mensagens no app do Braze retornando ABKDiscardInAppMessage no seu beforeInAppMessageDisplayed:). Se você optar por implementar sua própria interface do usuário usando nossos modelos de mensagem no app, deverá registrar a análise de dados com os seguintes métodos na classe ABKInAppMessage:
1
2
3
4
// Registers that a user has viewed an in-app message with the Braze server.
- (void) logInAppMessageImpression;
// Registers that a user has clicked on an in-app message with the Braze server.
- (void) logInAppMessageClicked;
1
2
3
4
// Registers that a user has viewed an in-app message with the Braze server.
func logInAppMessageImpression()
// Registers that a user has clicked on an in-app message with the Braze server.
func logInAppMessageClicked()
Além disso, você deve registrar os cliques em botões nas subclasses de ABKInAppMessageImmersive (i.e., Modal e mensagens no app Full):
1
2
// Logs button click analytics
- (void)logInAppMessageClickedWithButtonID:(NSInteger)buttonID;
1
2
// Logs button click analytics
func logInAppMessageClickedWithButtonID(buttonId: NSInteger)
Declarações de métodos
Para saber mais, consulte os seguintes arquivos de cabeçalho:
Amostras de implementação
Veja um AppDelegate.m exemplo de aplicativo de mensagem no app.
Editar esta página no GitHub