Skip to content


Content-Card-Integration

Content-Cards-Datenmodell

Das Content-Cards-Datenmodell ist im iOS SDK verfügbar.

Abrufen der Daten

Um auf das Content-Cards-Datenmodell zuzugreifen, abonnieren Sie die Update-Events für 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
    }
  }
}

Wenn Sie die Kartendaten ändern möchten, nachdem sie von Braze gesendet wurden, empfehlen wir Ihnen, eine Tiefenkopie der Kartendaten lokal zu speichern, die Daten zu aktualisieren und sie selbst anzuzeigen. Die Karten sind über ABKContentCardsController zugänglich.

Content-Card-Modell

Braze bietet drei Content-Card-Typen: Banner, Bild mit Bildunterschrift und klassisch. Jeder Typ erbt gemeinsame Eigenschaften von einer Basisklasse ABKContentCard und hat die folgenden zusätzlichen Eigenschaften.

Eigenschaften des Basis-Content-Card-Modells – ABKContentCard

Eigenschaft Beschreibung
idString (Nur Lesen) Die von Braze festgelegte ID der Karte.
viewed Diese Eigenschaft zeigt an, ob die Nutzer:in die Karte angesehen hat oder nicht.
created (Nur Lesen) Diese Eigenschaft ist der Unix-Zeitstempel der Erstellungszeit der Karte von Braze.
expiresAt (Nur Lesen) Diese Eigenschaft ist der Unix-Zeitstempel der Ablaufzeit der Karte.
dismissible Diese Eigenschaft gibt an, ob die Nutzer:in die Karte ausblenden kann.
pinned Diese Eigenschaft zeigt an, ob die Karte im Dashboard als „angeheftet“ eingerichtet wurde.
dismissed Diese Eigenschaft gibt an, ob die Nutzer:in die Karte ausgeblendet hat.
url Die URL, die geöffnet wird, nachdem auf die Karte geklickt wurde. Dabei kann es sich um eine HTTP(S)-URL oder eine Protokoll-URL handeln.
openURLInWebView Diese Eigenschaft bestimmt, ob die URL innerhalb der App oder in einem externen Webbrowser geöffnet wird.
extras Ein optionales NSDictionary von NSString-Werten.
Eigenschaft Beschreibung
image Diese Eigenschaft ist die URL des Bildes der Karte.
imageAspectRatio Diese Eigenschaft ist das Seitenverhältnis des Kartenbildes und dient als Hinweis, bevor das Laden des Bildes abgeschlossen ist. Beachten Sie, dass die Eigenschaft unter bestimmten Umständen nicht übermittelt werden kann.

Eigenschaften von Content Cards mit Bildunterschriften – ABKCaptionedImageCard

Eigenschaft Beschreibung
image Diese Eigenschaft ist die URL des Bildes der Karte.
imageAspectRatio Diese Eigenschaft ist das Seitenverhältnis des Bildes der Karte.
title Der Titeltext für die Karte.
cardDescription Der Fließtext für die Karte.
domain Der Linktext für die Eigenschaft URL, z. B. @”blog.braze.com”. Er kann auf der UI der Karte angezeigt werden, um die Aktion/Richtung beim Anklicken der Karte anzugeben.

Eigenschaften der klassischen Content-Card – ABKClassicContentCard

Eigenschaft Beschreibung
image (Optional) Diese Eigenschaft ist die URL des Bildes der Karte.
title Der Titeltext für die Karte.
cardDescription Der Fließtext für die Karte.
domain Der Linktext für die Eigenschaft URL, z. B. @”blog.braze.com”. Er kann auf der UI der Karte angezeigt werden, um die Aktion und Richtung beim Anklicken der Karte anzugeben.

Karten-Methoden

Methode Beschreibung
logContentCardImpression Protokollieren Sie manuell eine Impression in Braze für eine bestimmte Karte.
logContentCardClicked Protokollieren Sie manuell einen Klick in Braze für eine bestimmte Karte. Das SDK protokolliert einen Klick auf die Karte nur, wenn die Eigenschaft url einen gültigen Wert hat.
logContentCardDismissed Protokollieren Sie manuell eine Karten-Ausblendung in Braze für eine bestimmte Karte. Das SDK protokolliert eine Karten-Ausblendung nur, wenn die Eigenschaft dismissed der Karte nicht bereits auf true gesetzt ist.
isControlCard Bestimmen Sie, ob eine Karte die Kontrollkarte für einen A/B-Test ist.

Weitere Einzelheiten finden Sie in der Dokumentation der Klassenreferenz.

Integration des Content-Cards-View-Controllers

Content Cards können in zwei View-Controller-Kontexte integriert werden: Navigation oder Modal.

Beispiel für das Pushing einer ABKContentCardsTableViewController-Instanz in einen Navigation-Controller:

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)

Dieses Modal wird verwendet, um den View-Controller in einer modalen Ansicht zu präsentieren, mit einer Navigationsleiste oben und einem Done-Button an der Seite der Leiste.

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)

Beispiele für View-Controller finden Sie in unserer Content-Cards-Beispiel-App.

New Stuff!