Skip to content


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é 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.

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)

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.

New Stuff!