Firebase per Android notifiche e inviti alle app

Mentre la creazione della tua app per fornire un'esperienza straordinaria è incredibilmente importante, l'interazione con utenti nuovi ed esistenti è ancora più importante per il successo a lungo termine della tua app. In questo tutorial imparerai come utilizzare Firebase per abilitare Google Cloud Messaging e inviare notifiche alla tua app, nonché come consentire agli utenti di condividere la tua app con i loro contatti che utilizzano dispositivi Android o iOS. 

Questo tutorial presumerà che tu abbia già impostato un progetto per Firebase e abbia accesso alla Firebase Console. Per sapere come iniziare con Firebase per Android, consulta uno dei nostri altri tutorial:

  • Inizia con Firebase per Android

    La creazione di un server back-end richiede un set di competenze a cui mancano gli sviluppatori di app indipendenti. Fortunatamente, c'è Firebase, una piattaforma basata su cloud che ...
    Ashraff Hathibelagal
    SDK Android
  • Come creare un'app di chat Android utilizzando Firebase

    Con Firebase, la creazione di applicazioni social in tempo reale è una passeggiata nel parco. E la cosa migliore è che non devi scrivere una sola riga di ...
    Ashraff Hathibelagal
    SDK Android

Notifiche Firebase

Le notifiche sono uno dei modi più semplici per comunicare agli utenti nuovi eventi o funzioni nella tua app e indurli a riaprire l'app. Utilizzando Firebase, puoi inviare notifiche a tutti gli utenti o ai segmenti della tua base di utenti, consentendo di personalizzare ciò che i tuoi utenti ricevono e stimolare il loro interesse.

Notifiche mentre la tua app è in background

La visualizzazione delle notifiche quando l'app è in background è incredibilmente facile, poiché viene gestita automaticamente dalla libreria di Firebase Messaging. Nella tua applicazione, dovrai includere la libreria con la seguente riga in dipendenzenodo del tuo build.gradle file, quindi installare l'app su un dispositivo.

compila "com.google.firebase: firebase-messaging: 9.8.0"

Successivamente, devi accedere alla console di Firebase e selezionare il notifiche sezione nel pannello di navigazione sinistro.

Una volta nella sezione corretta, dovresti vedere una schermata che ti chiede di farlo invia il tuo primo messaggio.

Dopo aver fatto clic sul pulsante blu, verrai indirizzato a un modulo che ti consentirà di aggiungere contenuti ai messaggi e selezionare i gruppi che dovrebbero ricevere il messaggio. Utilizzando questo modulo, è possibile specificare le condizioni booleane che un dispositivo o utente deve soddisfare, come la posizione geografica o altri dati raccolti, per ricevere la notifica.

Una volta inviato il messaggio, dovrebbe apparire una notifica sui dispositivi dell'utente.

Notifiche in primo piano

Una cosa da notare è che le notifiche non verranno visualizzate per un utente se sono già nella tua app. Per ricevere notifiche in questa situazione, è necessario implementare a Servizio quello si estende FirebaseMessagingService.

public class NotificationService estende FirebaseMessagingService @Override public void onMessageReceived (RemoteMessage remoteMessage) super.onMessageReceived (remoteMessage); 

Dovrai anche includere questo Servizio nel tuo AndroidManifest.xml file.

    

Ora che hai il quadro generale insieme, è tempo di rimpolpare onMessageReceived nel tuo FirebaseMessagingService classe. Lo scopo principale di questo metodo è quello di prendere i dati inviati con il RemoteMessage oggetto e creare a Notifica in base a ciò che ricevi. 

Ci sono molte informazioni che possono essere tramandate con il RemoteMessage. Tuttavia, la maggior parte delle opzioni sono disponibili solo se si utilizza l'API back-end Firebase, anziché la console. Dalla console Firebase, puoi impostare un titolo, un corpo del messaggio e coppie chiave / valore personalizzate.

Registrazione di tutti i dati disponibili da a RemoteMessage può essere fatto in questo modo:

per (Map.Entry voce: remoteMessage.getData (). entrySet ()) Log.e ("Test", "Key =" + entry.getKey () + ", Value =" + entry.getValue ());  Log.e ("TutsPlus", "collapsekey:" + remoteMessage.getCollapseKey ()); Log.e ("TutsPlus", "da:" + remoteMessage.getFrom ()); Log.e ("TutsPlus", "id messaggio:" + remoteMessage.getMessageId ()); Log.e ("TutsPlus", "tipo messaggio ::" + remoteMessage.getMessageType ()); Log.e ("TutsPlus", "to:" + remoteMessage.getTo ()); Log.e ("TutsPlus", "tempo di invio:" + remoteMessage.getSentTime ()); Log.e ("TutsPlus", "ttl:" + remoteMessage.getTtl ()); Log.e ("TutsPlus", "title:" + remoteMessage.getNotification (). GetTitle ()); Log.e ("TutsPlus", "body:" + remoteMessage.getNotification (). GetBody ()); Log.e ("TutsPlus", "click action:" + remoteMessage.getNotification (). GetClickAction ()); Log.e ("TutsPlus", "color:" + remoteMessage.getNotification (). GetColor ()); Log.e ("TutsPlus", "icona:" + remoteMessage.getNotification (). GetIcon ());

Che, a sua volta, produrrà i seguenti messaggi di log.

E / TutsPlus: Chiave = custom_data_key, Valore = valore_unitario E / TutsPlus: collapsekey: com.tutsplus.tutsplusfirebasenotification E / TutsPlus: da: 1044252370931 E / TutsPlus: id messaggio: 0: 1478812920837872% ba5f8433ba5f8433 E / TutsPlus: tipo messaggio :: null E / TutsPlus: a: null E / TutsPlus: tempo di invio: 1478812919847 E / TutsPlus: ttl: 0 E / TutsPlus: titolo: Titolo personalizzato E / TutsPlus: corpo: Testo messaggio E / TutsPlus: clic azione: null E / TutsPlus: color: null E / TutsPlus: icon: null

Una volta che sai quali informazioni sono disponibili e come vuoi gestirle, puoi creare e visualizzare una notifica per i tuoi utenti.

NotificationCompat.Builder builder = new NotificationCompat.Builder (this); builder.setContentTitle (remoteMessage.getNotification () getTitle ().); builder.setSmallIcon (R.mipmap.ic_launcher); builder.setContentText (remoteMessage.getNotification () getBody ().); NotificationManagerCompat.from (this) .notify (0, builder.build ());

E questo è tutto! Ora dovresti essere in grado di configurare un'app per Android per inviare e ricevere notifiche dalla console di Firebase.

App invita

Ottenere nuovi utenti sulla tua app può essere una sfida scoraggiante, ma il passaparola è un ottimo modo per far girare la palla. Utilizzando Firebase, puoi aggiungere il widget App invita alla tua applicazione, che consentirà ai tuoi utenti di condividere la tua app via email o SMS con altri utenti Android o iOS.

Avvio del prompt di invito

Prima di poter iniziare a utilizzare questa funzione, è necessario importare il pacchetto nel progetto aggiungendo la seguente riga al file dipendenzenodo del tuo build.gradle file.

compila 'com.google.firebase: firebase-invites: 9.8.0'

Una volta sincronizzato il tuo progetto, sarai in grado di crearne uno nuovo Intento usando il AppInviteInvitation.IntentBuilder classe, che avvierà una schermata che consente agli utenti di selezionare i contatti da invitare all'app. Questo builder offre varie opzioni per personalizzare la schermata di invito all'applicazione:

  • setMessage: Questo imposterà il messaggio che gli utenti vedono e possono inviare ai contatti tramite SMS o e-mail. Questo non può essere più lungo di 100 caratteri.
  • setCustomImage: Utilizzando questo metodo, è possibile fornire un URI a un'immagine personalizzata che verrà visualizzata nella schermata di invito e invitare e-mail.
  • setCallToActionText: Questo metodo imposta il testo per il pulsante di installazione nelle e-mail. Questo ha un limite di 32 caratteri.
  • setDeepLink: Consente di fornire metadati per l'invito, che possono essere ricevuti al momento dell'installazione per intraprendere azioni specifiche per l'utente appena invitato.
  • setEmailHtmlContent: Consente di eseguire l'override setMessagesetCustomImage, e setCallToActionText per creare un'e-mail in formato HTML personalizzato da inviare a potenziali nuovi utenti.
  • setEmailSubject: Obbligatorio se setEmailHtmlContent viene usato. Come suggerisce il nome, questo imposterà l'oggetto per la tua email personalizzata.
  • setOtherPlatformsTargetApplication: Una delle opzioni più interessanti, questo metodo ti consentirà di associare l'ID dell'app client Firebase per una versione iOS della tua app, consentendo agli utenti iOS di installare la versione corretta se condivisa da un utente Android.

Una volta che hai creato il tuo Intento, puoi lanciarlo con startSubActivity essere avvisati quando l'utente è tornato dall'invitare altri.

Intent intent = new AppInviteInvitation.IntentBuilder (getString (R.string.invitation_title)) .setMessage (getString (R.string.invitation_message)) .setCustomImage (Uri.parse (getString (R.string.invitation_custom_image))) .setCallToActionText (getString (R.string.invitation_cta)) .setDeepLink (Uri.parse ("/ link")) .setOtherPlatformsTargetApplication (AppInviteInvitation.IntentBuilder.PlatformMode.PROJECT_PLATFORM_IOS, getString (R.string.ios_app_client_id)) .build ();

Ricevere inviti

Ora che sei in grado di invitare altri utenti alla tua app, dedichiamoci un attimo a concentrarci sulle opzioni di deep linking. Quando crei il tuo Intento, sei in grado di aggiungere un URI come un legame profondo. Quando un utente riceve l'invito su Android, puoi utilizzare Google Play Services e l'API AppInvite per intercettarlo URI ed esegui un'azione personalizzata, come la presentazione di una schermata di benvenuto, per il tuo nuovo utente. 

booleano autodeeplink = true; mGoogleApiClient = new GoogleApiClient.Builder (this) .addApi (AppInvite.API) .enableAutoManage (this, this) .build (); AppInvite.AppInviteApi.getInvitation (mGoogleApiClient, this, autodeeplink) .setResultCallback (nuovo ResultCallback() @Override public void onResult (AppInviteInvitationResult result) if (result.getStatus (). IsSuccess ()) // Ottieni informazioni sull'intento Intent intent = result.getInvitationIntent (); String deepLink = AppInviteReferral.getDeepLink (intent); String invitationId = AppInviteReferral.getInvitationId (intent); );

Noterai che abbiamo creato un booleano di nome autodeeplink. Quando è impostato su vero, il sistema Android gestirà automaticamente il ricevuto URI attraverso i filtri nel tuo AndroidManifest.xml file. Se è impostato su falso, puoi utilizzare l'API AppInvite per estrarre informazioni dall'invito ed eseguire l'azione personalizzata.

Conclusione

In questo tutorial hai imparato come implementare le notifiche di Firebase nelle tue app Android e come consentire agli utenti di condividere facilmente la tua app con i loro contatti. Capire cosa è disponibile in Firebase e come implementare le funzionalità generali ti aiuterà a creare rapidamente app che piacciono alle persone.

Per ulteriori informazioni sullo sviluppo di Firebase o Android in generale, consulta alcuni dei nostri altri corsi e tutorial qui su Envato Tuts+.

  • Inizia a creare un'app di progettazione dei materiali

    In questo video del mio corso sulla creazione di un'app di progettazione dei materiali, imparerai come creare l'interfaccia utente di un'app di progettazione dei materiali. Imparerai come ...
    Ashraff Hathibelagal
    androide
  • Android From Scratch: Firebase Crash Reporting

    Gli arresti anomali delle app non dovrebbero mai essere ignorati perché tendono ad allontanare gli utenti. Utilizzando una delle tante soluzioni di segnalazione degli arresti anomali disponibili oggi, puoi ...
    Ashraff Hathibelagal
    SDK Android
  • Firebase per Android: archiviazione file

    Durante la conferenza Google I / O del 2016, Firebase è stata reintrodotta nella comunità degli sviluppatori come una delle principali risorse per fornire un supporto back-end rapido per il web ...
    Paul Trebilcox-Ruiz
    SDK Android
  • Migrare un'app Android a Material Design

    Anni fa, quando Android era ancora un sistema operativo mobile in erba, era piuttosto noto per la sua brutta interfaccia utente. Perché non c'erano progetti ...
    Ashraff Hathibelagal
    androide