AppboyKit (également connu sous le nom de SDK Objective-C) n’est plus pris en charge et a été remplacé par Swift SDK. Il ne recevra plus de nouvelles fonctionnalités, de corrections de bugs, de mises à jour de sécurité ou d’assistance technique - cependant, la messagerie et l’analyse continueront à fonctionner normalement. Pour en savoir plus, consultez Présentation du nouveau SDK Braze Swift.
Gestion personnalisée de l’affichage des messages in-app
Lorsque l’option ABKInAppMessageControllerDelegate est définie, la méthode de délégation suivante sera appelée avant l’affichage des messages in-app :
1
- (ABKInAppMessageDisplayChoice) beforeInAppMessageDisplayed:(ABKInAppMessage *)inAppMessage;
1
func beforeInAppMessageDisplayed(inAppMessage: ABKInAppMessage!) -> ABKInAppMessageDisplayChoice
Si vous n’avez implémenté que ABKInAppMessageUIDelegatela méthode suivante du délégué de l’interface utilisateur sera appelée à la place :
1
- (ABKInAppMessageDisplayChoice) beforeInAppMessageDisplayed:(ABKInAppMessage *)inAppMessage withKeyboardIsUp:(BOOL)keyboardIsUp;
1
func beforeInAppMessageDisplayed(inAppMessage: ABKInAppMessage!, withKeyboardIsUp keyboardIsUp: Bool) -> ABKInAppMessageDisplayChoice
Vous pouvez personnaliser la gestion des messages in-app en implémentant cette méthode de délégation et en renvoyant l’une des valeurs suivantes pour ABKInAppMessageDisplayChoice :
ABKInAppMessageDisplayChoice |
Comportement |
|---|---|
Objectif-C : ABKDisplayInAppMessageNowSwift : displayInAppMessageNow |
Le message s’affichera immédiatement |
Objectif-C : ABKDisplayInAppMessageLaterSwift : displayInAppMessageLater |
Le message ne s’affichera pas et sera replacé sur le dessus de la pile. |
Objectif-C : ABKDiscardInAppMessageSwift : discardInAppMessage |
Le message sera supprimé et ne sera pas affiché. |
Vous pouvez utiliser la méthode de délégation beforeInAppMessageDisplayed: pour ajouter une logique d’affichage des messages in-app, personnaliser les messages in-app avant qu’ils ne soient affichés par Braze, ou vous désengager complètement de la logique d’affichage des messages in-app et de l’interface utilisateur de Braze.
Consultez notre exemple d’application pour un exemple de mise en œuvre.
Remplacer les messages in-app avant l’affichage
Si vous souhaitez modifier le comportement d’affichage des messages in-app, vous devez ajouter toute logique d’affichage nécessaire à votre méthode de délégation beforeInAppMessageDisplayed:. Par exemple, vous pouvez afficher le message in-app en haut de l’écran si le clavier est actuellement affiché, ou prendre le modèle de données de message in-app et afficher vous-même le message in-app.
Si la campagne de messages in-app ne s’affiche pas lorsque la session a été lancée, assurez-vous que la logique d’affichage nécessaire soit ajoutée à votre méthode de délégation beforeInAppMessageDisplayed:. Cela permet à la campagne de messages in-app d’afficher en haut de l’écran même si le clavier est affiché.
Désactivation du mode sombre
Pour empêcher les messages in-app d’adopter le style du mode sombre lorsque l’appareil de l’utilisateur a activé le mode sombre, utilisez la propriété ABKInAppMessage.enableDarkTheme. Depuis la méthode ABKInAppMessageControllerDelegate.beforeInAppMessageDisplayed: ou la méthode ABKInAppMessageUIDelegate.beforeInAppMessageDisplayed:, définissez la propriété enableDarkTheme du paramètre inAppMessage de la méthode sur 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
}
Masquer la barre d’état pendant l’affichage
Pour les messages Full et HTML dans l’application, le SDK tentera par défaut de placer le message sur la barre d’état. Cependant, dans certains cas, la barre d’état peut toujours apparaître en haut du message in-app. À partir de la version 3.21.1 du SDK iOS, vous pouvez forcer le masquage de la barre d’état lors de l’affichage des messages in-app Full et HTML en définissant ABKInAppMessageHideStatusBarKey sur YES dans les appboyOptions transmises à startWithApiKey:.
Enregistrement des impressions et des clics
L’enregistrement des impressions et des clics de messages in-app n’est pas automatique lorsque vous implémentez une gestion entièrement personnalisée (c.-à-d. que vous contournez l’affichage des messages in-app de Braze en renvoyant ABKDiscardInAppMessage dans votre beforeInAppMessageDisplayed:). Si vous choisissez de déployer votre propre interface utilisateur à l’aide de nos modèles de messages in-app, vous devez enregistrer les analyses à l’aide des méthodes suivantes sur la 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()
De plus, vous devriez enregistrer les clics sur les boutons des sous-classes de ABKInAppMessageImmersive (i.e., messages in-app Modal et Full) :
1
2
// Logs button click analytics
- (void)logInAppMessageClickedWithButtonID:(NSInteger)buttonID;
1
2
// Logs button click analytics
func logInAppMessageClickedWithButtonID(buttonId: NSInteger)
Déclarations de méthode
Pour plus d’informations, voir les fichiers d’en-tête suivants :
Exemples d’implémentation
Voir l’exemple d’application de messages in-app AppDelegate.m.
Modifier cette page sur GitHub