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 zur Verarbeitung von Aktionen. Das SDK kann eine Reihe von Handlern verwenden. Wenn deine 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 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 es sich bei der Aktion um einen relevanten Deeplink handelt.
Das Format der Aktion hängt vom ausgewählten Nachrichtenlayout ab. Modale Dialogfelder erhalten Aktionsschaltflächen mit anpassbarem Textinhalt, Textfarbe und Hintergrundfarbe. Bilder und Top-Banner werden hingegen interaktiv und lösen die angegebene Aktion aus, wenn sie angetippt werden.
Erscheinungsbild 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, Mitteilungsanzeigen zu ändern: Sie können die standardmäßigen Firebase In-App Messaging-Anzeigen ändern oder eine eigene Bibliothek mit Mitteilungsanzeigen erstellen.
Standardanzeigen ändern
Am einfachsten können Sie Ihre Mitteilungen anpassen, indem Sie auf dem Standardcode für die Anzeige von Nachrichten 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 das Repository geklont wurde, 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 | Titeltext | 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 aktualisieren, um den geänderten InAppMessaging
-Code zu verwenden
Damit Firebase In-App Messaging Ihre geänderten Nachrichten anstelle der Standardanzeigen verwendet, müssen Sie Ihre Podfile-Datei so aktualisieren, dass 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.
Schreiben Sie eine Klasse, die das Protokoll implementiert, um eine eigene Anzeigebibliothek zu erstellen.
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
bestimmt anhand des Attributs messageDisplayComponent
, welches Objekt beim Anzeigen 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