
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 le ABKInAppMessageControllerDelegate est défini, 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 ABKInAppMessageUIDelegate, la méthode suivante du délégué d’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 |
|---|---|
Objective-C : ABKDisplayInAppMessageNowSwift : displayInAppMessageNow |
Le message sera affiché immédiatement. |
Objective-C : ABKDisplayInAppMessageLaterSwift : displayInAppMessageLater |
Le message ne sera pas affiché et sera replacé en haut de la pile. |
Objective-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 que Braze ne les affiche, ou vous désengager complètement de la logique d’affichage et de l’interface utilisateur de Braze pour les messages in-app.
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 souhaiter afficher le message in-app depuis le haut de l’écran si le clavier est actuellement affiché, ou récupérer le modèle de données du message in-app et afficher le message in-app vous-même.
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 a été ajoutée à votre méthode de délégation beforeInAppMessageDisplayed:. Cela permet à la campagne de messages in-app de s’afficher depuis le 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 in-app Full et HTML, le SDK tentera par défaut de placer le message par-dessus la barre d’état. Cependant, dans certains cas, la barre d’état peut toujours apparaître au-dessus 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 données analytiques à 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 (c.-à-d., 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, consultez les fichiers d’en-tête suivants :
Exemples d’implémentation
Voir l’exemple d’application de messages in-app AppDelegate.m.