Firebase In-App-Messaging bietet eine Reihe vorkonfigurierter Verhaltensweisen und Nachrichtentypen mit einem standardmäßigen Erscheinungsbild. In einigen Fällen möchten Sie die Verhaltensweisen und den Nachrichteninhalt jedoch möglicherweise erweitern. Mit In-App-Messaging können Sie Nachrichten Aktionen hinzufügen und das Erscheinungsbild der Nachrichten anpassen.
Nachricht eine Aktion hinzufügen
Mit Aktionen können Sie Nutzer über Ihre In-App-Mitteilungen auf eine Website oder einen bestimmten Bildschirm in Ihrer App weiterleiten.
Deeplink-Handler implementieren
Firebase In-App Messaging verwendet Link-Handler, um Aktionen zu verarbeiten. Das SDK kann mehrere Handler verwenden. Wenn Ihre App bereits einen hat, kann Firebase In-App Messaging diesen ohne weitere Einrichtung verwenden. Wenn Sie noch keinen Handler haben, können Sie Firebase Dynamic Links verwenden. Weitere Informationen finden Sie unter Dynamic Links unter iOS erstellen.
Aktion über die Firebase-Konsole zur Nachricht hinzufügen
Sobald Ihre App einen Link-Handler hat, können Sie eine Kampagne mit einer Aktion erstellen. Öffnen Sie die Firebase-Konsole und gehen Sie zu Messaging. Starten Sie eine neue Kampagne oder bearbeiten Sie eine vorhandene. Geben Sie in dieser Kampagne eine Karte, einen Schaltflächentext und eine Schaltflächenaktion, eine Bildaktion oder eine Banneraktion an, wobei die Aktion ein relevanter Deeplink sein muss.
Das Format der Aktion hängt vom ausgewählten Nachrichtenlayout ab. Modale Dialogfelder erhalten Aktionsschaltflächen mit benutzerdefiniertem Schaltflächentext, Textfarbe und Hintergrundfarbe. Bilder und Top-Banner werden dagegen interaktiv und lösen die angegebene Aktion aus, wenn sie angetippt werden.
Design der Nachricht ändern
Mit Firebase In-App Messaging können Sie die Nachrichtenanzeige anpassen, um das Layout, die Schriftstile, die Schaltflächenformen und andere Details der Nachrichten in Ihrer App zu ändern. Es gibt zwei Möglichkeiten, Nachrichtenanzeigen zu ändern: Sie können die standardmäßigen Firebase In-App Messaging-Anzeigen ändern oder eine eigene Bibliothek für Nachrichtenanzeigen erstellen.
Standardanzeigen ändern
Am einfachsten lassen sich Nachrichten anpassen, indem Sie auf dem Standardcode für die Nachrichtenanzeige von Firebase In-App Messaging aufbauen.
firebase-ios-sdk
-Repository klonen
Klonen Sie zuerst die aktuelle Version des firebase-ios-sdk
-Repositorys und öffnen Sie das Verzeichnis InAppMessaging.
Nachrichtentypen auswählen, die geändert werden sollen
Nachdem Sie das Repository geklont haben, können Sie einen oder alle Firebase In-App Messaging-Nachrichtentypen ändern: Card
, Modal
, Banner
und ImageOnly
. Jeder Typ entspricht einem Nachrichtenlayout im Ablauf der Firebase In-App Messaging-Kampagnenerstellung.
Entsprechend hat jeder Typ Zugriff auf unterschiedliche Daten, die durch die Kampagnen-Anpassungsoptionen in der Firebase-Konsole bestimmt werden:
Typ | titleText | bodyText | textColor | backgroundColor | imageData | actionButton | secondaryActionButton |
---|---|---|---|---|---|---|---|
Karte | |||||||
Dialogfenster | |||||||
Banner | |||||||
ImageOnly |
Code für die Anzeige von Nachrichten ändern
Beachten Sie dabei die Einschränkungen für Mitteilungstypen. Sie können ein Banner erstellen, das unten in Ihrer App angezeigt wird, die Aktionsschaltfläche in einem Modalfenster verschieben, die In-App-Mitteilung in den Feed eines Nutzers einbetten oder jede andere Änderung vornehmen, die das Erscheinungsbild der Mitteilungen an Ihre App anpasst.
Beim Ändern der Nachrichtenanzeige gibt es zwei wichtige Dinge zu beachten:
- Verzeichnisse für Nachrichtentypen:Jeder Nachrichtentyp hat ein eigenes Verzeichnis mit Dateien, die die Logik dieses Typs bestimmen:
- Storyboard: Die
InAppMessaging
-Bibliothek enthält auch eine.storyboard
-Datei, mit der die Benutzeroberfläche für alle drei Nachrichtentypen definiert wird:
Ändern Sie die Dateien in den Verzeichnissen der gewünschten Mitteilungstypen und in den entsprechenden Abschnitten der .storyboard
, um benutzerdefinierte Mitteilungen zu erstellen.
Podfile für die Verwendung des geänderten InAppMessaging
-Codes aktualisieren
Damit Firebase In-App Messaging Ihre geänderten Nachrichtenanzeigen anstelle der Standardanzeigen verwendet, aktualisieren Sie Ihre Podfile-Datei, damit sie Ihre benutzerdefinierte InAppMessaging
-Bibliothek verwendet:
# Uncomment the next line to define a global platform for your project # platform :ios, '9.0' target 'YourProject' do # Comment the next line if you're not using Swift and don't want to use dynamic frameworks use_frameworks! # Pods for YourProject pod 'Firebase' # Remove the default InAppMessaging pod: # pod 'Firebase/InAppMessaging' # Overwrite it with a version that points to your local copy: pod `FirebaseInAppMessaging', :path => '~/Path/To/The/Cloned/Repo/' end
Eigene Bibliothek für Nachrichtenanzeige erstellen
Sie sind nicht auf die InAppMessaging
-Bibliothek beschränkt, um eine Benutzeroberfläche zum Anzeigen von Nachrichten zu erstellen. Sie können auch Ihren eigenen Code von Grund auf neu schreiben.
Eine Klasse erstellen, die das InAppMessagingDisplay
-Protokoll implementiert
Firebase In-App Messaging verwendet die InAppMessaging
-Klasse, um die Kommunikation zwischen Firebase-Servern und Ihrer App zu verwalten. Diese Klasse verwendet wiederum das InAppMessagingDisplay
-Protokoll, um die empfangenen Nachrichten anzuzeigen.
Wenn Sie eine eigene Anzeigebibliothek erstellen möchten, schreiben Sie eine Klasse, die das Protokoll implementiert.
Die Protokolldefinition und die Dokumentation zur Einhaltung finden Sie in der Datei FIRInAppMessagingDisplay.h
der Bibliothek InAppMessaging
.
messageDisplayComponent
so einstellen, dass die Nachrichtenanzeige-Mediathek verwendet wird
InAppMessaging
verwendet die Property messageDisplayComponent
, um zu bestimmen, welches Objekt bei der Anzeige von Nachrichten verwendet werden soll. Legen Sie diese Property auf ein Objekt Ihrer benutzerdefinierten Klasse für die Nachrichtenanzeige fest, damit Firebase In-App Messaging weiß, dass Ihre Bibliothek zum Rendern von Nachrichten verwendet werden soll:
InAppMessaging.inAppMessaging().messageDisplayComponent = yourInAppMessagingRenderingInstance