Firebase für Android Benachrichtigungen und App-Einladungen

Während das Erstellen Ihrer App für ein großartiges Erlebnis unglaublich wichtig ist, ist es für den langfristigen Erfolg Ihrer App noch wichtiger, mit neuen und bestehenden Benutzern in Kontakt zu treten. In diesem Lernprogramm erfahren Sie, wie Sie Firebase verwenden, um Google Cloud Messaging zu aktivieren und Benachrichtigungen an Ihre App zu senden. Außerdem erfahren Sie, wie Benutzer Ihre App für ihre Kontakte freigeben können, die entweder Android- oder iOS-Geräte verwenden. 

In diesem Lernprogramm wird davon ausgegangen, dass Sie bereits ein Projekt für Firebase eingerichtet haben und Zugriff auf die Firebase-Konsole haben. Weitere Informationen zum Einstieg in Firebase für Android finden Sie in einem unserer anderen Tutorials:

  • Erste Schritte mit Firebase für Android

    Zum Erstellen eines Back-End-Servers sind Fähigkeiten erforderlich, die den meisten unabhängigen App-Entwicklern fehlen. Zum Glück gibt es Firebase, eine Cloud-basierte Plattform, die…
    Ashraff Hathibelagal
    Android SDK
  • So erstellen Sie eine Android-Chat-App mit Firebase

    Mit Firebase ist das Erstellen von Echtzeitanwendungen für soziale Netzwerke ein Spaziergang im Park. Und das Beste daran ist, dass Sie keine einzige Zeile schreiben müssen.
    Ashraff Hathibelagal
    Android SDK

Firebase-Benachrichtigungen

Benachrichtigungen sind eine der einfachsten Methoden, um Ihre Benutzer über neue Ereignisse oder Funktionen in Ihrer App zu informieren und sie dazu zu bringen, die App erneut zu öffnen. Mit Firebase können Sie Benachrichtigungen an alle Benutzer oder an Segmente Ihrer Benutzerbasis senden. So können Sie anpassen, was Ihre Benutzer erhalten, und deren Interesse wecken.

Benachrichtigungen, während sich Ihre App im Hintergrund befindet

Das Anzeigen von Benachrichtigungen, wenn sich Ihre App im Hintergrund befindet, ist unglaublich einfach, da sie automatisch von der Firebase-Messaging-Bibliothek verarbeitet wird. In Ihrer Anwendung müssen Sie die Bibliothek mit der folgenden Zeile in das Verzeichnis aufnehmen AbhängigkeitenKnoten Ihres build.gradle Datei und installieren Sie die App auf einem Gerät.

kompilieren 'com.google.firebase: firebase-messaging: 9.8.0'

Als Nächstes müssen Sie in Ihre Firebase-Konsole gehen und die Option auswählen Benachrichtigungen Abschnitt in der linken Navigationsleiste.

Sobald Sie sich im richtigen Bereich befinden, wird ein Bildschirm angezeigt, in dem Sie dazu aufgefordert werden Senden Sie Ihre erste Nachricht.

Nachdem Sie auf die blaue Schaltfläche geklickt haben, werden Sie zu einem Formular weitergeleitet, in dem Sie den Nachrichten Inhalt hinzufügen und auswählen können, welche Gruppen die Nachricht erhalten sollen. Mit diesem Formular können Sie boolesche Bedingungen angeben, die ein Gerät oder Benutzer erfüllen muss (z. B. geografischer Standort oder andere erfasste Daten), um Ihre Benachrichtigung zu erhalten.

Nachdem Sie die Nachricht gesendet haben, sollte auf den Geräten Ihres Benutzers eine Benachrichtigung angezeigt werden.

Benachrichtigungen im Vordergrund

Beachten Sie, dass Benachrichtigungen für Benutzer nicht angezeigt werden, wenn sie sich bereits in Ihrer App befinden. Um in dieser Situation Benachrichtigungen zu erhalten, müssen Sie ein implementieren Bedienung das erstreckt sich FirebaseMessagingService.

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

Sie müssen dies auch angeben Bedienung in deiner AndroidManifest.xml Datei.

    

Jetzt, da Sie den allgemeinen Rahmen zusammen haben, ist es an der Zeit, sich zu verbessern onMessageReceived in deiner FirebaseMessagingService Klasse. Der Hauptzweck dieser Methode besteht darin, die mit der gesendeten Daten herunterzufahren RemoteMessage Objekt und erstellen Sie ein Benachrichtigung basierend auf dem, was Sie erhalten. 

Es gibt eine Menge Informationen, die mit der weitergegeben werden können RemoteMessage. Die meisten Optionen sind jedoch nur verfügbar, wenn Sie statt der Konsole die Firebase-Back-End-API verwenden. In der Firebase-Konsole können Sie einen Titel, einen Nachrichtentext und benutzerdefinierte Schlüssel / Wert-Paare festlegen.

Protokollierung aller verfügbaren Daten von a RemoteMessage kann so gemacht werden:

für (Map.Entry entry: remoteMessage.getData (). entrySet ()) Log.e ("Test", "Key =" + entry.getKey () + ", Value =" + entry.getValue ());  Log.e ("TutsPlus", "collapsekey:" + remoteMessage.getCollapseKey ()); Log.e ("TutsPlus", "from:" + remoteMessage.getFrom ()); Log.e ("TutsPlus", "Nachrichten-ID:" + remoteMessage.getMessageId ()); Log.e ("TutsPlus", "Nachrichtentyp ::") + remoteMessage.getMessageType ()); Log.e ("TutsPlus", "an:" + remoteMessage.getTo ()); Log.e ("TutsPlus", "Sendezeit:") + 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") "Klickaktion:" + remoteMessage.getNotification (). GetClickAction ()); Log.e ("TutsPlus", "color:" + remoteMessage.getNotification (). GetColor ()); Log.e ("TutsPlus", "icon:" + remoteMessage.getNotification (). GetIcon ());

Dies wiederum erzeugt die folgenden Protokollnachrichten.

E / TutsPlus: Schlüssel = Benutzerdefinierte_Datenschlüssel, Wert = irgendein_Wert E / TutsPlus: collapsekey: com.tutsplus.tutsplusfirebasenotification E / TutsPlus: from: 1044252370931 E / TutsPlus: Nachrichten-ID: 0: 1478812920837848 E / TutsPlus: an: null E / TutsPlus: Sendezeit: 1478812919847 E / TutsPlus: TTL: 0 E / TutsPlus: Titel: Benutzerdefinierter Titel E / TutsPlus: Nachrichtentext E / TutsPlus: Klickaktion: Null E / TutsPlus: Farbe: Null E / TutsPlus: Symbol: Null

Sobald Sie wissen, welche Informationen verfügbar sind und wie Sie damit umgehen möchten, können Sie eine Benachrichtigung für Ihre Benutzer erstellen und anzeigen.

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 ());

Und das ist es! Sie sollten jetzt in der Lage sein, eine Android-App zum Senden und Empfangen von Benachrichtigungen von der Firebase-Konsole einzurichten.

App lädt ein

Neue Benutzer für Ihre App zu gewinnen, kann eine gewaltige Herausforderung sein, aber Mundpropaganda ist eine großartige Möglichkeit, den Ball ins Rollen zu bringen. Mit Firebase können Sie das App Invites-Widget zu Ihrer Anwendung hinzufügen, sodass Ihre Benutzer Ihre App per E-Mail oder SMS für andere Android- oder iOS-Benutzer freigeben können.

Starten der Invite-Eingabeaufforderung

Bevor Sie mit dieser Funktion beginnen können, müssen Sie das Paket in Ihr Projekt importieren, indem Sie die folgende Zeile in die Zeile hinzufügen AbhängigkeitenKnoten Ihres build.gradle Datei.

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

Nachdem Sie Ihr Projekt synchronisiert haben, können Sie ein neues erstellen Absicht Verwendung der AppInviteInvitation.IntentBuilder Diese Klasse öffnet einen Bildschirm, auf dem Benutzer Kontakte auswählen können, die zur App eingeladen werden sollen. Dieser Builder bietet verschiedene Optionen zum Anpassen des App-Einladungsbildschirms:

  • setMessage: Dadurch wird die Nachricht festgelegt, die Benutzer über SMS oder E-Mail an Kontakte senden können. Dies darf nicht länger als 100 Zeichen sein.
  • setCustomImageMit dieser Methode können Sie einem benutzerdefinierten Bild einen URI zuweisen, der auf dem Einladungsbildschirm angezeigt wird und E-Mails einlädt.
  • setCallToActionText: Diese Methode legt den Text für die Installationsschaltfläche in E-Mails fest. Diese darf maximal 32 Zeichen lang sein.
  • setDeepLink: Ermöglicht Ihnen die Bereitstellung von Metadaten für Ihre Einladung, die bei der Installation empfangen werden können, um bestimmte Aktionen für Ihren neu eingeladenen Benutzer auszuführen.
  • setEmailHtmlContent: Ermöglicht das Überschreiben setMessagesetCustomImage, und setCallToActionText Erstellen einer benutzerdefinierten HTML-E-Mail für das Senden an potenzielle neue Benutzer.
  • setEmailSubject: Erforderlich wenn setEmailHtmlContent wird eingesetzt. Wie der Name schon sagt, wird damit der Betreff Ihrer benutzerdefinierten E-Mail festgelegt.
  • setOtherPlatformsTargetApplication: Eine der interessanteren Optionen. Mit dieser Methode können Sie die Firebase-Client-App-ID für eine iOS-Version Ihrer App zuordnen, sodass iOS-Benutzer die richtige Version installieren können, wenn sie von einem Android-Benutzer gemeinsam genutzt wird.

Sobald Sie Ihr erstellt haben Absicht, Sie können es mit starten startActivityForResult zu benachrichtigen, wenn der Benutzer von der Einladung anderer zurückgekehrt ist.

Absicht Absicht = neu AppInviteInvitation.IntentBuilder (getString (R.string.invitation_title)) .setMessage (getString (R.string.invitation_message)) .setCustomImage (Uri.parse (getString (R.string.invitation_custom_image)) (R.string.invitation_cta)) .setDeepLink (Uri.parse ("/ link")) .setOtherPlatformsTargetApplication (AppInviteInvitation.IntentBuilder.PlatformMPode.PROJECT_PLATFORM_IOS, getString.ios_app_Client).

Einladungen empfangen

Nun, da Sie andere Benutzer zu Ihrer App einladen können, nehmen wir uns einen Moment Zeit, um uns auf die Optionen für tiefe Verknüpfungen zu konzentrieren. Wenn Sie Ihre erstellen Absicht, Sie können eine hinzufügen URI als tiefe Verbindung. Wenn ein Benutzer Ihre Einladung auf Android erhält, können Sie die Google Play-Dienste und die AppInvite-API verwenden, um dies abzufangen URI und führen Sie eine benutzerdefinierte Aktion aus, z. B. die Anzeige eines Begrüßungsbildschirms für Ihren neuen Benutzer. 

boolean autodeeplink = true; mGoogleApiClient = new GoogleApiClient.Builder (this) .addApi (AppInvite.API) .enableAutoManage (this, this) .build (); AppInvite.AppInviteApi.getInvitation (mGoogleApiClient, autodeeplink) .setResultCallback (neues ResultCallback)() @Override public void onResult (Ergebnis AppInviteInvitationResult) if (result.getStatus (). IsSuccess ()) // Intent-Informationen abrufen Intent intent = result.getInvitationIntent (); String deepLink = AppInviteReferral.getDeepLink (intent); String invitationId = AppInviteReferral.getInvitationId (Absicht); );

Sie werden feststellen, dass wir eine erstellt haben boolean genannt Autodesplink. Wenn dies auf eingestellt ist wahr, Das Android-System verarbeitet automatisch die empfangenen URI durch Filter in Ihrem AndroidManifest.xml Datei. Wenn es eingestellt ist falsch, Sie können die AppInvite-API verwenden, um Informationen aus der Einladung zu extrahieren und Ihre benutzerdefinierte Aktion auszuführen.

Fazit

In diesem Lernprogramm haben Sie erfahren, wie Sie Benachrichtigungen von Firebase in Ihre Android-Apps implementieren und Ihren Benutzern die einfache Freigabe Ihrer App mit ihren Kontakten ermöglichen. Wenn Sie wissen, was in Firebase zur Verfügung steht, und wie Sie die allgemeinen Funktionen implementieren, können Sie schnell Apps erstellen, die von den Anwendern gerne verwendet werden.

Um mehr über die Entwicklung von Firebase oder Android im Allgemeinen zu erfahren, lesen Sie einige unserer Kurse und Tutorials hier auf Envato Tuts+.

  • Beginnen Sie mit dem Erstellen einer Material Design App

    In diesem Video aus meinem Kurs zum Erstellen einer Materialdesign-App erfahren Sie, wie Sie die Benutzeroberfläche einer Materialdesign-App erstellen. Du wirst lernen, wie…
    Ashraff Hathibelagal
    Android
  • Android From Scratch: Firebase-Absturzberichte

    App-Abstürze sollten niemals ignoriert werden, da sie dazu neigen, Benutzer zu vertreiben. Mit einer der vielen heute verfügbaren Crash-Reporting-Lösungen können Sie…
    Ashraff Hathibelagal
    Android SDK
  • Firebase für Android: Dateispeicherung

    Während der Google I / O-Konferenz 2016 wurde Firebase als wichtige Ressource für die schnelle Back-End-Unterstützung für das Web wieder in die Entwicklergemeinde aufgenommen.
    Paul Trebilcox-Ruiz
    Android SDK
  • Migrieren Sie eine Android-App zu Material Design

    Vor Jahren, als Android noch ein aufstrebendes mobiles Betriebssystem war, war es für seine hässliche Benutzeroberfläche ziemlich berüchtigt. Weil es kein Design gab…
    Ashraff Hathibelagal
    Android