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:
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.
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ängigkeiten
Knoten 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.
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.Entryentry: 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.
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.
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ängigkeiten
Knoten 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.setCustomImage
Mit 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 setMessage
, setCustomImage
, 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).
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.
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+.