Per l'invio e la ricezione di notifiche push mobili tramite il Mobile SDK di Android, è necessario configurare Firebase Cloud Messaging. In questo articolo vengono spiegati i passaggi necessari per effettuare la configurazione.
1. Creare e configurare il progetto in Firebase
1.1. Creare e configurare un progetto in Firebase
Il primo passo sarà configurare un progetto nella console di Firebase; se non ne hai uno, puoi seguire la guida di Google per la creazione e configurazione iniziale di Firebase su Android.
Una volta completato questo passaggio, avremo ottenuto il file google-services.json, avremo Google Play Service a livello di progetto e app, e la dipendenza di Firebase a livello di app (all’interno dei nostri file Build.gradle).
1.2. Configurazione di FirebaseMessagingService
All’interno del nostro progetto Android, sarà necessario implementare il servizio FirebaseMessagingService, che ci permetterà di ricevere le notifiche tramite onMessageReceived e registrare le modifiche del push token con onNewToken.
a. Ricezione delle notifiche in onMessageReceived
Nel metodo onMessageReceived riceveremo le notifiche generate dai nostri Workflow in Connectif; per gestire queste push useremo Connectif.handlePushNotification, che restituirà un booleano che indica se la push è stata gestita da Connectif, come mostrato nell’implementazione, lo utilizzeremmo per gestire tutte le push che non provengono da Connectif.
override fun onMessageReceived(remoteMessage: RemoteMessage) {
if (!Connectif.handlePushNotification(
remoteMessage.data,
applicationContext
)
) {
// Other push providers
}
}Se desideriamo identificare se la push proviene da Connectif e non vogliamo gestirla in quel momento, possiamo utilizzare Connectif.isConnectifPushNotification.
b. Registrare le modifiche del token push
La prima volta che la nostra app viene avviata genera un nuovo token, che possiamo registrare attraverso il nostro servizio con onNewToken.
override fun onNewToken(token: String) {
Connectif.addPushToken(token)
}
Nota importante sui permessi: Invocando il metodo Connectif.addPushToken(token), l’SDK di Connectif invierà automaticamente, insieme al nuovo token, lo stato attuale dei permessi per le notifiche push dell’utente sul dispositivo. Questo garantisce che Connectif abbia sempre informazioni aggiornate sulla capacità dell’utente di ricevere notifiche in tempo reale.
Il token potrebbe cambiare nei seguenti casi:
- L’app viene ripristinata su un dispositivo nuovo.
- L’utente disinstalla e reinstalla l’app.
- L’utente cancella i dati dell’app.
Questo sarà l’aspetto della nostra implementazione di FirebaseMessagingService.
class MyFirebaseMessagingService : FirebaseMessagingService() {
private val notificationManager by lazy {
getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
}
override fun onMessageReceived(remoteMessage: RemoteMessage) {
if (!Connectif.handlePushNotification(
remoteMessage.data,
notificationManager,
applicationContext
)
) {
// Other push providers
}
}
override fun onNewToken(token: String) {
Connectif.addPushToken(token)
}
}Dobbiamo tenere presente che se non è il primo avvio dell’app, onNewToken non verrà eseguito, quindi sarà utile ottenere il token push attuale dall’istanza di Firebase e inviarlo a Connectif. I momenti adatti sono durante onCreate nel nostro oggetto Application o nella nostra Activity principale.
class SampleApp : Application() {
override fun onCreate() {
super.onCreate()
FirebaseMessaging.getInstance().token.addOnSuccessListener {
Connectif.addPushToken(it, applicationContext)
}
}
}
c. Aggiungere FirebaseMessagingService al file AndroidManifest
Per poter usare il servizio di messaggistica, dobbiamo aggiungerlo al nostro file AndroidManifest.
<service
android:name=".mypackages.MyFirebaseMessagingService"
android:exported="false">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>2. Configurare Android nell’Integrazione App Mobile di Connectif
Per poter inviare push da Connectif, è necessario fornirci la chiave privata (file JSON) dell’Account di Servizio per Google Cloud. I passaggi per la creazione sono i seguenti.
Dalla Console di Firebase accederemo al nostro progetto, nella sezione "Impostazioni progetto" accederemo agli "Account di Servizio".
Mantenendo selezionato Node.js, cliccheremo su "Genera nuova chiave privata". Questa azione genererà un file JSON che ci servirà più avanti.
In Connectif andremo alla configurazione del nostro negozio, nella sezione del canale App Mobile. Troveremo una sezione Android che ci permetterà di caricare il file precedentemente scaricato da Firebase.
Questo sarà l’aspetto della nostra integrazione una volta caricato correttamente il file.
Una volta completati questi passaggi, l’integrazione di Firebase Cloud Messaging sarà pronta per inviare push dai nostri workflow.
3. Configurazione aggiuntiva
Ricorda che all’avvio l’SDK può definire alcuni valori usando il parametro ConnectifConfig in Connectif.initialize().
3.1. Icona
Di default è assegnata un’icona alle nostre notifiche push:
ic_default_notification
Se vuoi, puoi personalizzarla indicando la risorsa nella proprietà pushSmallIcon di ConnectifConfig quando avvii l’SDK; ricorda che per essere visualizzata correttamente deve contenere solo colore bianco e trasparenze.
3.2. Canale di notifiche
Da Android 8 è obbligatorio creare un canale per poter mostrare le notifiche; di default assegniamo alle notifiche mostrate da Connectif il nome canale "Default Channel" e "connectif_channel" come identificatore del canale.
Puoi indicarci un nome e un canale personalizzati usando le proprietà pushChannelName e pushChannelId di ConnectifConfig quando avvii l’SDK.
3.3. Aggiornamento dello stato dei permessi di notifiche
Se hai bisogno di forzare l’aggiornamento dello stato dei permessi delle notifiche push dell’utente (ad esempio, se l’utente ha modificato i permessi dalle impostazioni di sistema di Android e vuoi riflettere immediatamente tale cambiamento in Connectif), puoi utilizzare il metodo updatePushPermissionStatus().
Questo metodo permette di inviare all’SDK lo stato attuale dei permessi di notifica del dispositivo in qualsiasi momento.
Connectif.updatePushPermissionStatus()Continua a imparare!
Per sfruttare tutto il potenziale del tuo account Connectif, ti consigliamo di continuare con i seguenti articoli:
- Android SDK Get Started, per aggiungere Connectif Mobile SDK al tuo progetto Android.
- Guida completa per integrare Connectif con la tua App Mobile, per conoscere in dettaglio tutte le modifiche di questa integrazione.
- iOS SDK Get Started, per aggiungere Connectif Mobile SDK al tuo progetto iOS.
- Configurazione Apple Push Notifications Service, per attivare l’invio e la ricezione di push tramite il Mobile SDK di iOS.