Cette page a été traduite automatiquement et peut contenir des inexactitudes. Pour signaler une erreur de traduction,
ouvrez un ticket sur GitHub.

Avertissement
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.
Intégration des Content Cards
Modèle de données des Content Cards
Le modèle de données des Content Cards est disponible dans le SDK iOS.
Obtenir les données
Pour accéder au modèle de données des Content Cards, abonnez-vous aux événements de mise à jour des Content Cards :
1
2
3
4
5
6
| // Subscribe to Content Cards updates
// Note: you should remove the observer where appropriate
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(contentCardsUpdated:)
name:ABKContentCardsProcessedNotification
object:nil];
|
1
2
3
4
5
6
7
| // Called when Content Cards are refreshed (via `requestContentCardsRefresh`)
- (void)contentCardsUpdated:(NSNotification *)notification {
BOOL updateIsSuccessful = [notification.userInfo[ABKContentCardsProcessedIsSuccessfulKey] boolValue];
if (updateIsSuccessful) {
// get the cards using [[Appboy sharedInstance].contentCardsController getContentCards];
}
}
|
1
2
3
4
5
| // Subscribe to content card updates
// Note: you should remove the observer where appropriate
NotificationCenter.default.addObserver(self, selector:
#selector(contentCardsUpdated),
name:NSNotification.Name.ABKContentCardsProcessed, object: nil)
|
1
2
3
4
5
6
7
8
| // Called when the Content Cards are refreshed (via `requestContentCardsRefresh`)
@objc private func contentCardsUpdated(_ notification: Notification) {
if let updateIsSuccessful = notification.userInfo?[ABKContentCardsProcessedIsSuccessfulKey] as? Bool {
if (updateIsSuccessful) {
// get the cards using Appboy.sharedInstance()?.contentCardsController.contentCards
}
}
}
|
Si vous souhaitez modifier les données de la carte après qu’elles ont été envoyées par Braze, nous vous recommandons de stocker localement une copie complète des données de la carte, de mettre les données à jour et de les afficher vous-même. Les cartes sont accessibles via ABKContentCardsController.
Modèle de carte de contenu
Braze propose trois types de Content Cards : bannière, image légendée et classique. Chaque type hérite des propriétés communes d’une classe ABKContentCard de base et possède les propriétés supplémentaires suivantes.
Propriétés du modèle de carte de contenu de base — ABKContentCard
| Propriété |
Description |
idString |
(Lecture seule) L’ID de la carte défini par Braze. |
viewed |
Cette propriété indique si l’utilisateur a vu la carte ou non. |
created |
(Lecture seule) Cette propriété est l’horodatage unix de la date de création de la carte par Braze. |
expiresAt |
(Lecture seule) Cette propriété est l’horodatage unix de la date d’expiration de la carte. |
dismissible |
Cette propriété indique si l’utilisateur peut fermer la carte. |
pinned |
Cette propriété indique si la carte a été définie comme « épinglée » dans le tableau de bord. |
dismissed |
Cette propriété indique si l’utilisateur a fermé la carte. |
url |
L’URL qui sera ouverte après un clic sur la carte. Il peut s’agir d’une URL HTTP(S) ou d’une URL de protocole. |
openURLInWebView |
Cette propriété détermine si l’URL sera ouverte dans l’application ou dans un navigateur web externe. |
extras |
Un NSDictionary facultatif de valeurs NSString. |
Propriétés de la carte de contenu de type bannière — ABKBannerContentCard
| Propriété |
Description |
image |
Cette propriété est l’URL de l’image de la carte. |
imageAspectRatio |
Cette propriété est le rapport hauteur/largeur de l’image de la carte et sert d’indication avant que le chargement de l’image ne soit terminé. Notez que cette propriété peut ne pas être fournie dans certaines circonstances. |
Propriétés de la carte de contenu avec image légendée — ABKCaptionedImageCard
| Propriété |
Description |
image |
Cette propriété est l’URL de l’image de la carte. |
imageAspectRatio |
Cette propriété est le rapport hauteur/largeur de l’image de la carte. |
title |
Le texte du titre de la carte. |
cardDescription |
Le texte du corps de la carte. |
domain |
Le texte du lien pour l’URL de la propriété, par exemple @”blog.braze.com”. Il peut être affiché dans l’interface de la carte pour indiquer l’action et la direction du clic sur la carte. |
Propriétés de la carte de contenu classique — ABKClassicContentCard
| Propriété |
Description |
image |
(Facultatif) Cette propriété est l’URL de l’image de la carte. |
title |
Le texte du titre de la carte. |
cardDescription |
Le texte du corps de la carte. |
domain |
Le texte du lien pour l’URL de la propriété, par exemple @”blog.braze.com”. Il peut être affiché dans l’interface de la carte pour indiquer l’action et la direction du clic sur la carte. |
Méthodes de carte
| Méthode |
Description |
logContentCardImpression |
Enregistrer manuellement une impression sur Braze pour une carte particulière. |
logContentCardClicked |
Enregistrer manuellement un clic sur Braze pour une carte particulière. Le SDK n’enregistre un clic de carte que lorsque la carte possède la propriété url avec une valeur valide. |
logContentCardDismissed |
Enregistrer manuellement une fermeture sur Braze pour une carte particulière. Le SDK n’enregistre une fermeture de carte que si la propriété dismissed de la carte n’est pas déjà définie sur true. |
isControlCard |
Déterminer si une carte est la carte de contrôle pour un test A/B. |
Pour plus de détails, reportez-vous à la documentation de référence de classe.
Intégration du contrôleur de vue des Content Cards
Les Content Cards peuvent être intégrées avec deux contextes de contrôleur de vue : navigation ou modal.
Contexte de navigation
Exemple d’ajout d’une instance ABKContentCardsTableViewController dans un contrôleur de navigation :
1
2
3
4
| ABKContentCardsTableViewController *contentCards = [[ABKContentCardsTableViewController alloc] init];
contentCards.title = @"Content Cards Title";
contentCards.disableUnreadIndicator = YES;
[self.navigationController pushViewController:contentCards animated:YES];
|
1
2
3
4
| let contentCards = ABKContentCardsTableViewController()
contentCards.title = "Content Cards Title"
contentCards.disableUnreadIndicator = true
navigationController?.pushViewController(contentCards, animated: true)
|

Remarque
Pour personnaliser le titre de la barre de navigation, définissez la propriété de titre du navigationItem de l’instance ABKContentCardsTableViewController.
Contexte modal
Cette fenêtre modale est utilisée pour présenter le contrôleur de vue dans une vue modale, avec une barre de navigation en haut et un bouton Done sur le côté de la barre.
1
2
3
4
| ABKContentCardsViewController *contentCards = [[ABKContentCardsViewController alloc] init];
contentCards.contentCardsViewController.title = @"Content Cards Title";
contentCards.contentCardsViewController.disableUnreadIndicator = YES;
[self.navigationController presentViewController:contentCards animated:YES completion:nil];
|
1
2
3
4
| let contentCards = ABKContentCardsViewController()
contentCards.contentCardsViewController.title = "Content Cards Title"
contentCards.contentCardsViewController.disableUnreadIndicator = true
self.present(contentCards, animated: true, completion: nil)
|
Pour des exemples de contrôleurs de vue, consultez notre exemple d’application Content Cards.

Remarque
Pour personnaliser l’en-tête, définissez la propriété de titre du navigationItem appartenant à l’instance ABKContentCardsTableViewController intégrée dans l’instance parente ABKContentCardsViewController.