Firebase In-App Messaging bietet eine Reihe nützlicher vorkonfigurierter Verhaltensweisen und Nachrichtentypen mit einem Standarddesign. In einigen Fällen möchten Sie jedoch möglicherweise Verhaltensweisen und Nachrichteninhalte erweitern. Mit In-App Messaging können Sie Nachrichten Aktionen hinzufügen und das Design von Nachrichten anpassen.
Nachricht eine Aktion hinzufügen
Mit Aktionen können Sie Nutzer mit Ihren In-App-Nachrichten 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 eine Reihe von Handlern verwenden. Wenn Ihre App also 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 Dynamische Links unter iOS erstellen.
Nachricht über die Firebase Console eine Aktion hinzufügen
Sobald Ihre App einen Link-Handler hat, können Sie eine Kampagne mit einer Aktion erstellen. Öffnen Sie die Firebase Console und rufen Sie Messaging auf. Starten Sie eine neue Kampagne oder bearbeiten Sie eine vorhandene Kampagne. Geben Sie in dieser Kampagne eine Karte, einen Schaltflächentext und eine Schaltflächenaktion, eine Bildaktion oder eine Banner aktion an. Die Aktion ist ein relevanter Deeplink.
Das Format der Aktion hängt vom ausgewählten Nachrichtenlayout ab. Modale Nachrichten erhalten Aktionsschaltflächen mit anpassbarem Schaltflächentext, Textfarbe und Hintergrundfarbe. Bilder und Top-Banner hingegen werden interaktiv und rufen die angegebene Aktion auf, wenn darauf getippt wird.
Design von Nachrichten ändern
Firebase In-App Messaging ermöglicht Ihnen die Anpassung der Nachrichtenanzeigen, um die Art und Weise zu ändern, wie Ihre App das Layout, die Schriftstile, die Schaltflächenformen und andere Details von Nachrichten rendert. Es gibt zwei Möglichkeiten, Nachrichtenanzeigen zu ändern: Sie können die StandardFirebase In-App Messaging Anzeigen ändern oder eine eigene Nachrichtenanzeigenbibliothek von Grund auf erstellen.
Standardanzeigen ändern
Die einfachste Möglichkeit, Ihre Nachrichten anzupassen, besteht darin, den Standardcode für die Nachrichtenanzeige von Firebase In-App Messaging's zu verwenden.
Repository firebase-ios-sdk klonen
Klonen Sie zuerst die neueste Version
des Repositorys firebase-ios-sdk und öffnen Sie das
Verzeichnis „InAppMessaging“.
Zu ändernde Nachrichtentypen auswählen
Nachdem das Repository geklont wurde, können Sie alle oder einige der Firebase In-App Messaging Nachrichtentypen ändern:
Card, Modal, Banner, und ImageOnly. Jeder Typ entspricht einem
Nachrichtenlayout im Firebase In-App Messaging Erstellungsprozess für Kampagnen.
Dementsprechend hat jeder Typ Zugriff auf eine andere Reihe von Daten, die durch die Optionen zur Kampagnenanpassung in der Firebase Console bestimmt werden:
| Typ | titleText | bodyText | textColor | backgroundColor | imageData | actionButton | secondaryActionButton |
|---|---|---|---|---|---|---|---|
| Karte | |||||||
| Modal | |||||||
| Banner | |||||||
| Nur Bild |
Code für die Nachrichtenanzeige ändern
Unter Berücksichtigung der Einschränkungen für Nachrichtentypen können Sie diese beliebig ändern. Sie können ein Banner erstellen, das unten in Ihrer App angezeigt wird, die Aktionsschaltfläche in einem modalen Fenster verschieben, die In-App-Nachricht in den Feed eines Nutzers einbetten oder andere Änderungen vornehmen, damit das Design der Nachrichten zu Ihrer App passt.
Beim Ändern von Nachrichtenanzeigen sind zwei Hauptpunkte zu beachten:
- Verzeichnisse für Nachrichtentypen:Jeder Nachrichtentyp hat ein separates Verzeichnis mit Dateien, die die Logik dieses Typs bestimmen:
- Storyboard:Die Bibliothek
InAppMessagingenthält auch eine Datei.storyboard, mit der die UI für alle drei Nachrichtentypen definiert wird:
Ändern Sie die Dateien in den Verzeichnissen der gewünschten Nachrichtentypen und die entsprechenden Abschnitte von .storyboard, um Ihre benutzerdefinierten Nachrichtenanzeigen zu erstellen.
Podfile aktualisieren, um den geänderten InAppMessaging-Code zu verwenden
Damit Firebase In-App Messaging Ihre geänderten Nachrichtenanzeigen anstelle der Standard
Anzeigen verwendet, aktualisieren Sie Ihr Podfile, um Ihre angepasste InAppMessaging Bibliothek zu verwenden:
# 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 Nachrichtenanzeigenbibliothek erstellen
Sie sind nicht darauf beschränkt, die Bibliothek InAppMessaging zu verwenden, um eine UI für die Anzeige von Nachrichten zu erstellen. Sie können auch Ihren eigenen Code von Grund auf schreiben.
Klasse erstellen, die das Protokoll InAppMessagingDisplay implementiert
Firebase In-App Messaging verwendet die Klasse InAppMessaging, um die Kommunikation zwischen
Firebase-Servern und Ihrer App zu verarbeiten. Diese Klasse verwendet wiederum das
Protokoll InAppMessagingDisplay, um die empfangenen Nachrichten anzuzeigen.
Wenn Sie eine eigene Anzeigenbibliothek erstellen möchten, schreiben Sie eine Klasse, die das Protokoll implementiert.
Die Protokolldefinition und die Dokumentation zur Einhaltung des Protokolls finden Sie in der
FIRInAppMessagingDisplay.h Datei der InAppMessaging Bibliothek.
messageDisplayComponent so festlegen, dass Ihre Nachrichtenanzeigenbibliothek verwendet wird
InAppMessaging verwendet die Property
messageDisplayComponent
, um zu bestimmen, welches Objekt
beim Anzeigen von Nachrichten verwendet werden soll. Legen Sie diese Property auf ein Objekt Ihrer benutzerdefinierten
Nachrichtenanzeigenklasse fest, damit Firebase In-App Messaging Ihre Bibliothek zum Rendern von Nachrichten verwendet:
InAppMessaging.inAppMessaging().messageDisplayComponent = yourInAppMessagingRenderingInstance