AppboyKit (también conocido como SDK Objective-C) ya no recibe soporte y ha sido sustituido por Swift SDK. Ya no recibirá nuevas características, correcciones de errores, actualizaciones de seguridad ni soporte técnico; sin embargo, la mensajería y los análisis seguirán funcionando con normalidad. Para obtener más información, consulta Presentación del nuevo SDK Swift de Braze.
Manejo personalizado de la visualización de mensajes dentro de la aplicación
Cuando está configurado ABKInAppMessageControllerDelegate, se llama al siguiente método delegado antes de que se muestren los mensajes dentro de la aplicación:
1
- (ABKInAppMessageDisplayChoice) beforeInAppMessageDisplayed:(ABKInAppMessage *)inAppMessage;
1
func beforeInAppMessageDisplayed(inAppMessage: ABKInAppMessage!) -> ABKInAppMessageDisplayChoice
Si sólo has implementado ABKInAppMessageUIDelegatese llamará al siguiente método delegado de interfaz de usuario:
1
- (ABKInAppMessageDisplayChoice) beforeInAppMessageDisplayed:(ABKInAppMessage *)inAppMessage withKeyboardIsUp:(BOOL)keyboardIsUp;
1
func beforeInAppMessageDisplayed(inAppMessage: ABKInAppMessage!, withKeyboardIsUp keyboardIsUp: Bool) -> ABKInAppMessageDisplayChoice
Puedes personalizar la gestión de mensajes dentro de la aplicación implementando este método delegado y devolviendo uno de los siguientes valores para ABKInAppMessageDisplayChoice:
ABKInAppMessageDisplayChoice |
Comportamiento |
|---|---|
Objective-C: ABKDisplayInAppMessageNowSwift: displayInAppMessageNow |
El mensaje se mostrará inmediatamente. |
Objective-C: ABKDisplayInAppMessageLaterSwift: displayInAppMessageLater |
El mensaje no se mostrará y volverá a colocarse en la parte superior de la pila. |
Objective-C: ABKDiscardInAppMessageSwift: discardInAppMessage |
El mensaje se descartará y no se mostrará. |
Puedes utilizar el métodobeforeInAppMessageDisplayed: delegate para añadir lógica de visualización de mensajes dentro de la aplicación, personalizar los mensajes dentro de la aplicación antes de que Braze los muestre u optar por no utilizar la lógica de visualización de mensajes dentro de la aplicación y la interfaz de usuario de Braze por completo.
Consulta nuestra aplicación de muestra para ver un ejemplo de implementación.
Anulación de mensajes dentro de la aplicación antes de la visualización
Si quieres modificar el comportamiento de visualización de los mensajes dentro de la aplicación, debes añadir la lógica de visualización necesaria a tu método delegado beforeInAppMessageDisplayed:. Por ejemplo, puede que quieras mostrar el mensaje dentro de la aplicación desde la parte superior de la pantalla si se está mostrando el teclado, o tomar el modelo de datos del mensaje dentro de la aplicación y mostrar tú mismo el mensaje dentro de la aplicación.
Si la campaña de mensajería dentro de la aplicación no se muestra cuando se ha iniciado la sesión, asegúrate de que has añadido la lógica de visualización necesaria a tu método delegado beforeInAppMessageDisplayed:. Esto permite que la campaña de mensajería dentro de la aplicación se muestre desde la parte superior de la pantalla aunque se esté mostrando el teclado.
Desactivar el modo oscuro
Para evitar que los mensajes dentro de la aplicación adopten el estilo de modo oscuro cuando el dispositivo del usuario tiene habilitado el modo oscuro, utiliza la propiedad ABKInAppMessage.enableDarkTheme. Desde el método ABKInAppMessageControllerDelegate.beforeInAppMessageDisplayed: o ABKInAppMessageUIDelegate.beforeInAppMessageDisplayed:, establece la propiedad enableDarkTheme del parámetro inAppMessage del método en 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
}
Ocultar la barra de estado durante la visualización
Para los mensajes dentro de la aplicación Full y HTML, el SDK intentará colocar el mensaje sobre la barra de estado de forma predeterminada. Sin embargo, en algunos casos, la barra de estado puede seguir apareciendo encima del mensaje dentro de la aplicación. A partir de la versión 3.21.1 del SDK de iOS, puedes forzar que la barra de estado se oculte al mostrar los mensajes dentro de la aplicación Full y HTML configurando ABKInAppMessageHideStatusBarKey a YES dentro del appboyOptions pasado a startWithApiKey:.
Registro de impresiones y clics
El registro de impresiones y clics de mensajes dentro de la aplicación no es automático cuando implementas un manejo completamente personalizado (por ejemplo, eludes la visualización de mensajes dentro de la aplicación de Braze devolviendo ABKDiscardInAppMessage en tu beforeInAppMessageDisplayed:). Si decides implementar tu propia interfaz de usuario utilizando nuestros modelos de mensajes dentro de la aplicación, debes registrar los análisis con los siguientes métodos en la clase 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()
Además, deberías registrar los clics en los botones de las subclases de ABKInAppMessageImmersive (i.e., Modal y Full mensajes dentro de la aplicación):
1
2
// Logs button click analytics
- (void)logInAppMessageClickedWithButtonID:(NSInteger)buttonID;
1
2
// Logs button click analytics
func logInAppMessageClickedWithButtonID(buttonId: NSInteger)
Declaraciones de métodos
Para más información, consulta los siguientes archivos de encabezado:
Muestras de aplicación
Consulta AppDelegate.m ejemplo de aplicación de mensajes dentro de la aplicación.
Editar esta página en GitHub