AppboyKit (also known as the Objective-C SDK) is no longer supported and has been replaced by the Swift SDK. It will no longer receive new features, bug fixes, security updates, or technical support—however, messaging and analytics will continue to function as normal. To learn more, see Introducing the New Braze Swift SDK.
Intégration du fil d’actualité
Le Fil d’actualité est obsolète. Braze recommande aux clients qui utilisent notre outil de fil d’actualités de passer à notre canal de communication de cartes de contenu : il est plus flexible, plus personnalisable et plus fiable. Consultez le guide de migration pour en savoir plus.
Modèle de données de fil d’actualités
Obtenir les données
Pour accéder au modèle de données de fil d’actualités, abonnez-vous aux événements de mise à jour du fil d’actualités :
1
2
3
4
5
6
// Subscribe to feed updates
// Note: you should remove the observer where appropriate
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(feedUpdated:)
name:ABKFeedUpdatedNotification
object:nil];
1
2
3
4
5
6
// Called when the feed is refreshed (via `requestFeedRefresh`)
- (void)feedUpdated:(NSNotification *)notification {
BOOL updateIsSuccessful = [notification.userInfo[ABKFeedUpdatedIsSuccessfulKey] boolValue];
// check for success
// get the cards using [[Appboy sharedInstance].feedController getCardsInCategories:ABKCardCategoryAll];
}
1
2
3
4
5
// Subscribe to feed updates
// Note: you should remove the observer where appropriate
NotificationCenter.default.addObserver(self, selector:
#selector(feedUpdated),
name:NSNotification.Name.ABKFeedUpdated, object: nil)
1
2
3
4
5
6
7
// Called when the feed is refreshed (via `requestFeedRefresh`)
private func feedUpdated(_ notification: Notification) {
if let updateSuccessful = notification.userInfo?[ABKFeedUpdatedIsSuccessfulKey] as? Bool {
// check for success
// get the cards using Appboy.sharedInstance()?.feedController.getCardsInCategories(.all);
}
}
Si vous souhaitez modifier les données de la carte après qu’elles aient été envoyées par Braze, nous vous recommandons de stocker localement (copie complète) les données de la carte, de les mettre à jour et de les afficher vous-même. Les cartes sont accessibles via ABKFeedController
.
Modèle de fil d’actualités
Braze propose cinq types de cartes uniques : image de bannière, image sous-titrée, annonce textuelle et classique. Chaque type hérite des propriétés communes d’un modèle de base et possède les propriétés supplémentaires suivantes.
Propriétés du modèle de carte de base
Propriété | Description |
---|---|
idString |
(Lecture seule) L’ID de la carte est défini par Braze. |
viewed |
Cette propriété reflète si la carte est lue ou non lue par l’utilisateur. |
created |
(Lecture seule) La propriété est l’horodatage Unix du temps de création de la carte depuis le tableau de bord de Braze. |
updated |
(Lecture seule) La propriété est l’horodatage Unix du dernier temps de mise à jour de la carte depuis le tableau de bord de Braze. |
categories |
La liste des catégories attribuées à la carte, les cartes sans catégorie seront attribuées ABKCardCategoryNoCategory .Catégories disponibles : - ABKCardCategoryNoCategory - ABKCardCategoryNews - ABKCardCategoryAdvertising - ABKCardCategoryAnnouncements - ABKCardCategorySocial - ABKCardCategoryAll |
extras |
Un NSDictionary facultatif de valeurs NSString . |
Propriétés de la carte image de bannière
Propriété | Description |
---|---|
image |
(Obligatoire) Cette propriété est l’URL de l’image de la carte. |
URL |
(Facultatif) L’URL qui s’ouvrira après avoir cliqué sur la carte. Il peut s’agir d’une URL HTTP(S) ou d’une URL de protocole. |
domain |
(Facultatif) Le texte du lien pour l’URL de propriété, par exemple @”blog.braze.com”. Il peut être affiché sur l’interface utilisateur de la carte pour indiquer l’action et la direction de cliquer sur la carte, mais est masqué dans le fil d’actualité de Braze par défaut. |
Propriétés de carte image sous-titrée
Propriété | Description |
---|---|
image |
(Obligatoire) Cette propriété est l’URL de l’image de la carte. |
title |
(Obligatoire) Le texte du titre de la carte. |
description (Obligatoire) Le texte du corps de la carte. |
|
URL |
(Facultatif) L’URL qui s’ouvrira après avoir cliqué sur la carte. Il peut s’agir d’une URL HTTP(S) ou d’une URL de protocole. |
domain |
(Facultatif) Le texte du lien pour l’URL de propriété, par exemple @”blog.braze.com”. Il peut être affiché sur l’interface utilisateur de la carte pour indiquer l’action et la direction du clic sur la carte. |
Propriétés de la carte d’annonce textuelle (image sous-titrée sans image)
Propriété | Description |
---|---|
title |
(Obligatoire) Le texte du titre de la carte. |
description |
(Obligatoire) Le texte du corps de la carte. |
url |
(Facultatif) L’URL qui s’ouvrira après avoir cliqué sur la carte. Il peut s’agir d’une URL HTTP(S) ou d’une URL de protocole. |
domain |
(Facultatif) Le texte du lien pour l’URL de propriété, par exemple @”blog.braze.com”. Il peut être affiché sur l’interface utilisateur de la carte pour indiquer l’action et la direction du clic sur la carte. |
Propriétés de la carte classique
Propriété | Description |
---|---|
image |
(Obligatoire) Cette propriété est l’URL de l’image de la carte. |
title |
(Facultatif) Le texte du titre de la carte. |
description |
(Obligatoire) Le texte du corps de la carte. |
URL |
(Facultatif) L’URL qui s’ouvrira après avoir cliqué sur la carte. Il peut s’agir d’une URL HTTP(S) ou d’une URL de protocole. |
domain |
(Facultatif) Le texte du lien pour l’URL de propriété, par exemple @”blog.braze.com”. Il peut être affiché sur l’interface utilisateur de la carte pour indiquer l’action et la direction du clic sur la carte. |
Méthodes de carte
Méthode | Description |
---|---|
logCardImpression |
Enregistrer manuellement une impression sur Braze pour une carte particulière. |
logCardClicked |
Enregistrer manuellement un clic sur Braze pour une carte particulière. Le SDK ne journalisera une carte que lorsque la carte aura la propriété url avec une valeur valide. Toutes les sous-classes de ABKCard ont la propriété url . |
Affichage du flux de fil d’actualité
Lorsque vous affichez le fil d’actualités dans votre propre interface utilisateur, vous pouvez enregistrer manuellement les impressions du fil d’actualités via - (void)logFeedDisplayed;
. Par exemple :
1
[[Appboy sharedInstance] logFeedDisplayed];
1
Appboy.sharedInstance()?.logFeedDisplayed()
Intégration du contrôleur de visualisation du fil d’actualités
Intégrer le contrôleur de visualisation ABKNewsFeedViewController
affichera le fil d’actualité Braze.
Vous disposez d’une grande flexibilité dans la manière dont vous choisissez d’afficher les contrôleurs de vue. Il existe différentes versions des contrôleurs de vue permettant de s’adapter aux différentes structures de navigation.
Le fil d’actualités appelé par le comportement par défaut d’un clic sur un message in-app ne respectera aucun des délégués que vous avez définis pour le fil d’actualités. Si vous souhaitez respecter cela, vous devez définir le délégué sur ABKInAppMessageUIController
et implémenter la méthode du délégué ABKInAppMessageUIDelegate
onInAppMessageClicked:
.
Le fil d’actualité peut être intégré à deux contextes de contrôleur de visualisation : navigation ou modal.
Contexte de navigation - ABKFeedViewControllerNavigationContext
1
2
ABKNewsFeedTableViewController *newsFeed = [[ABKNewsFeedTableViewController alloc] init];
[self.navigationController pushViewController:newsFeed animated:YES];
1
2
let newsFeed = ABKNewsFeedTableViewController()
self.navigationController?.pushViewController(newsFeed, animated: true)
Pour personnaliser la barre de navigation title
, définissez la propriété de titre de l’instance ABKNewsFeedTableViewController
navigationItem
.
Contexte modal - ABKFeedViewControllerModalContext
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 Terminé sur le côté droit de la barre. Pour personnaliser le titre du modal, définissez title
la propriété de l’instance ABKNewsFeedTableViewController
navigationItem
.
Si un délégué n’est PAS défini, le bouton Terminé fermera la fenêtre modale. Si un délégué est défini, le bouton Terminé appellera le délégué, et le délégué lui-même sera responsable de la fermeture de la vue.
1
2
ABKNewsFeedViewController *newsFeed = [[ABKNewsFeedViewController alloc] init];
[self presentViewController:newsFeed animated:YES completion:nil];
1
2
let newsFeed = ABKNewsFeedViewController()
self.present(newsFeed, animated: true, completion: nil)
Pour consulter des exemples de contrôleur, reportez-vous à notre exemple d’application de fil d’actualités.