AppboyKit (também conhecido como o SDK Objective-C) não é mais suportado e foi substituído pelo Swift SDK. 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 a funcionar normalmente. Para saber mais, veja Apresentando o Novo SDK Braze Swift.
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 de delegado beforeInAppMessageDisplayed: para adicionar lógica de exibição de mensagens no app, personalizar mensagens no app antes que a Braze as exiba ou optar por não usar a lógica e a interface de exibição de mensagens no app da Braze.
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