Firebase In-App Messaging fornisce un utile insieme di comportamenti e tipi di messaggi preconfigurati con un aspetto predefinito, ma in alcuni casi potresti voler estendere i comportamenti e i contenuti dei messaggi. La messaggistica in-app ti consente di aggiungere azioni ai messaggi e di personalizzarne l'aspetto.
Aggiungere un'azione al messaggio
Con le azioni, puoi utilizzare i messaggi in-app per indirizzare gli utenti a un sito web o a una schermata specifica della tua app.
Implementare un gestore dei link diretti
Firebase In-App Messaging utilizza i gestori dei link per elaborare le azioni. L'SDK è in grado di utilizzare una serie di gestori, quindi se la tua app ne ha già uno, Firebase In-App Messaging può utilizzarlo senza ulteriore configurazione. Se non hai ancora un gestore, puoi utilizzare Firebase Dynamic Links. Per scoprire di più, consulta Creare link dinamici su iOS.
Aggiungi l'azione al messaggio utilizzando la console Firebase
Una volta che la tua app dispone di un gestore dei link, puoi comporre una campagna con un'azione. Apri la console Firebase per accedere a Messaging e avvia una nuova campagna o modificane una esistente. Nella campagna, fornisci una scheda, un testo del pulsante e un'azione del pulsante, un'azione di immagine o un'azione di banner, dove l'azione è un link diretto pertinente.
Il formato dell'azione dipende dal layout del messaggio scelto. Le finestre modali dispongono di pulsanti di azione con contenuti del testo del pulsante, colore del testo e colore di sfondo personalizzabili. Le immagini e i banner in alto, invece, diventano interattivi e richiamano l'azione specificata quando vengono toccati.
Modificare l'aspetto del messaggio
Firebase In-App Messaging ti consente di personalizzare la visualizzazione dei messaggi per modificare il modo in cui l'app esegue il rendering del layout dei messaggi, degli stili di caratteri, delle forme dei pulsanti e di altri dettagli. Esistono due modi per modificare le visualizzazioni dei messaggi: modificare le visualizzazioni Firebase In-App Messaging predefinite o creare da zero la tua raccolta di visualizzazioni dei messaggi.
Modificare le visualizzazioni predefinite
Il modo più semplice per personalizzare i messaggi è partire dal codice di visualizzazione dei messaggi predefinito di Firebase In-App Messaging.
Clona il repository firebase-ios-sdk
Per iniziare, clona la release più recente
del repository firebase-ios-sdk
e apri la
directory InAppMessaging.
Seleziona i tipi di messaggio da modificare
Dopo aver clonato il repository, puoi modificare uno o tutti i tipi di messaggi Firebase In-App Messaging:
Card
, Modal
, Banner
e ImageOnly
. Ogni tipo corrisponde a un
layout del messaggio nel flusso di creazione della campagna Firebase In-App Messaging.
Di conseguenza, ogni tipo ha accesso a un insieme diverso di dati, determinato dalle opzioni di personalizzazione della campagna nella console Firebase:
Tipo | titleText | bodyText | textColor | backgroundColor | imageData | actionButton | secondaryActionButton |
---|---|---|---|---|---|---|---|
Scheda | |||||||
Modale | |||||||
Banner | |||||||
ImageOnly |
Modificare il codice di rendering della visualizzazione del messaggio
Tenendo presente le limitazioni dei tipi di messaggio, puoi modificarli come preferisci. Puoi creare un banner da visualizzare nella parte inferiore dell'app, spostare il pulsante di azione in una finestra modale, incorporare il messaggio in-app nel feed di un utente o apportare qualsiasi altra modifica che renda l'aspetto dei messaggi adatto alla tua app.
Quando modifichi la visualizzazione dei messaggi, devi prestare attenzione a due aspetti principali:
- Directory dei tipi di messaggio: ogni tipo di messaggio ha una directory distinta con i file che determinano la logica di quel tipo:
- Storyboard: la libreria
InAppMessaging
contiene anche un file.storyboard
che consente di definire l'interfaccia utente per tutti e tre i tipi di messaggi:
Modifica i file nelle directory dei tipi di messaggi che preferisci e le sezioni corrispondenti di .storyboard
per creare le visualizzazioni dei messaggi personalizzati.
Aggiorna il file podfile per utilizzare il codice InAppMessaging
modificato
Per fare in modo che Firebase In-App Messaging utilizzi le visualizzazioni dei messaggi modificate anziché quelle predefinite, aggiorna il file podfile in modo da utilizzare la raccolta InAppMessaging
personalizzata:
# 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
Creare una raccolta di visualizzazione dei messaggi
Non devi necessariamente utilizzare la libreria InAppMessaging
per creare un'interfaccia utente per la visualizzazione dei messaggi. Puoi anche scrivere il tuo codice da zero.
Crea una classe che implementa il protocollo InAppMessagingDisplay
Firebase In-App Messaging utilizza la classe InAppMessaging
per gestire le comunicazioni tra i server Firebase e la tua app. Questa classe, a sua volta, utilizza il protocollo InAppMessagingDisplay
per visualizzare i messaggi ricevuti.
Per creare la tua raccolta di visualizzazioni, scrivi una classe che implementi il protocollo.
La definizione del protocollo e la documentazione su come rispettarlo si trovano nel
FIRInAppMessagingDisplay.h
file della libreria InAppMessaging
.
Imposta messageDisplayComponent
per utilizzare la libreria di visualizzazione dei messaggi
InAppMessaging
utilizza la sua proprietà
messageDisplayComponent
per determinare quale oggetto
da utilizzare per la visualizzazione dei messaggi. Imposta questa proprietà su un oggetto della tua classe di visualizzazione dei messaggi personalizzati, in modo che Firebase In-App Messaging sappia di utilizzare la tua libreria per il rendering dei messaggi:
InAppMessaging.inAppMessaging().messageDisplayComponent = yourInAppMessagingRenderingInstance