Senden von Android-Push-Benachrichtigungen mit Firebase Cloud Messaging

Autor: Louise Ward
Erstelldatum: 4 Februar 2021
Aktualisierungsdatum: 1 Juli 2024
Anonim
Push Notifications mit Firebase Cloud Messaging (Topic Messaging) - Android Apps programmieren
Video: Push Notifications mit Firebase Cloud Messaging (Topic Messaging) - Android Apps programmieren

Inhalt


Obwohl dies den Rahmen dieses Lernprogramms sprengt, können Sie FCM auch für Upstream-Benachrichtigungen verwenden, bei denen FCM eine von der Client-Anwendung erhält, oder um Ihre App zu benachrichtigen, wenn neue Daten zum Herunterladen verfügbar sind. Auf diese Weise können Sie sicherstellen, dass die Kommunikation zwischen Ihrem App-Server und der Client-App nur bei Bedarf erfolgt. Dies ist weitaus effizienter, als wenn die Client-App in regelmäßigen Abständen Kontakt mit dem Server aufnimmt, da möglicherweise neue Daten verfügbar sind.

Da FCM Teil von Firebase ist, funktioniert es auch gut mit anderen Firebase-Diensten. Wenn Sie mit den FCM-Grundlagen vertraut sind, können Sie mithilfe von A / B-Tests herausfinden, welche Benachrichtigungen am effektivsten sind, oder mithilfe von Firebase-Vorhersagen leistungsstarkes maschinelles Lernen auf alle Analysedaten anwenden, die aus Ihren verschiedenen FCM-Kampagnen generiert wurden.


FCM unterstützt zwei Arten von s:

  • Benachrichtigung s. Die Client-Anwendung verhält sich je nachdem, ob sie sich beim Empfang des FCM im Hintergrund oder im Vordergrund befindet. Befindet sich Ihre App im Hintergrund, verarbeitet das Firebase SDK das automatisch und zeigt es als Benachrichtigung in der Taskleiste des Geräts an. Da das Android-System die Benachrichtigung für Sie erstellt, ist dies eine der einfachsten Möglichkeiten, Push-Benachrichtigungen an Ihre Benutzer zu senden. Wenn Ihre App im Vordergrund eine FCM empfängt, wird das System Gewohnheit Diese Benachrichtigung wird automatisch verarbeitet, sodass Sie den in Ihrer App enthaltenen onReceived () -Rückruf verarbeiten können. Wir werden uns später in diesem Lernprogramm mit onReceived () befassen. Beachten Sie jedoch zunächst, dass Ihre App dem Benutzer standardmäßig nicht angezeigt wird, wenn sie eine Weile im Vordergrund steht.
  • Daten s. Im Gegensatz zu Benachrichtigungen können Sie mithilfe von Daten benutzerdefinierte Datenelemente an die Clientanwendung senden. FCM begrenzt diese Daten jedoch auf 4 KB. Wenn Ihre Nutzlast 4 KB übersteigt, müssen Sie die zusätzlichen Daten mit WorkManager oder der JobScheduler-API abrufen.

In diesem Lernprogramm konzentrieren wir uns auf Benachrichtigungen.


Was ist mit Google Cloud Messaging?

Wenn Sie die Server- und Client-APIs von Google Cloud Messaging (GCM) verwenden, gibt es einige schlechte Nachrichten: Dieser Dienst ist bereits veraltet und Google plant, die meisten GCM-Dienste im April 2019 zu deaktivieren Wenn Sie GCM verwenden, sollten Sie jetzt mit der Migration Ihrer Projekte zu FCM beginnen und die Migration bis April 2019 abgeschlossen haben.

Hinzufügen von Firebase zu Ihrem Android-Projekt

Lassen Sie uns sehen, wie einfach es ist, Ihrer App grundlegende FCM-Unterstützung hinzuzufügen und dann Push-Benachrichtigungen an Ihre Benutzer zu senden.

Da FCM ein Firebase-Dienst ist, müssen Sie Ihrer App Firebase hinzufügen:

  • Gehen Sie zur Firebase-Konsole.
  • Wählen Sie "Projekt hinzufügen" und geben Sie Ihrem Projekt einen Namen.
  • Lesen Sie die Allgemeinen Geschäftsbedingungen. Wenn Sie fortfahren möchten, wählen Sie "Ich akzeptiere ..." und anschließend "Projekt erstellen".
  • Wählen Sie "Firebase zu Ihrer Android-App hinzufügen".
  • Geben Sie den Paketnamen Ihres Projekts ein und klicken Sie auf "App registrieren".
  • Wählen Sie "google-services.json herunterladen".
  • Ziehen Sie in Android Studio die Datei google-services.json in das App-Verzeichnis Ihres Projekts.
  • Öffnen Sie die build.gradle-Datei auf Projektebene und fügen Sie Folgendes hinzu:

Klassenpfad com.google.gms: google-services: 4.0.1

  • Öffnen Sie Ihre build.gradle-Datei auf App-Ebene und fügen Sie das Google-Plug-in für Dienste sowie die Abhängigkeiten für Firebase Core und FCM hinzu:

// Plugin für Google-Dienste hinzufügen // Plugin anwenden: com.google.gms.google-services……… Abhängigkeiten {Implementierungsdateibaum (Verzeichnis: libs, include:) // Firebase-Kern hinzufügen // Implementierung com.google.firebase: firebase-core: 16.0.1 // FCM hinzufügen // implementierung com.google.firebase: firebase-messaging: 17.3.4

  • Synchronisieren Sie Ihre Änderungen, wenn Sie dazu aufgefordert werden.
  • Als Nächstes müssen Sie der Firebase-Konsole mitteilen, dass Sie Ihrem Projekt erfolgreich Firebase hinzugefügt haben. Installieren Sie Ihre App entweder auf einem physischen Android-Smartphone oder -Tablet oder auf einem virtuellen Android-Gerät (AVD).
  • Wählen Sie in der Firebase-Konsole "App ausführen, um die Installation zu überprüfen".
  • Sobald Firebase Ihre App erkannt hat, wird ein "Glückwunsch" angezeigt. Wählen Sie "Weiter zur Konsole".

Senden Sie Ihre erste Push-Benachrichtigung mit Firebase

Und das ist es! Sie können jetzt eine Push-Benachrichtigung an Ihre Benutzer senden. Diese Benachrichtigung wird in der Taskleiste des Geräts angezeigt.

Sie erstellen FCM-Benachrichtigungen mit dem Notifications Composer, der über die Firebase-Konsole verfügbar ist:

  • Stellen Sie sicher, dass Ihre App installiert ist und im Hintergrund ausgeführt wird und dass Ihr Gerät über eine aktive Internetverbindung verfügt.
  • Wählen Sie in der Firebase-Konsole im linken Menü die Option „Cloud Messaging“.

  • Wählen Sie "Senden Sie Ihre erste."
  • Geben Sie einen Titel und einen Nachrichtentext ein und klicken Sie dann auf "Weiter".

  • Öffnen Sie das Dropdown-Menü "App auswählen" und wählen Sie Ihre Anwendung aus der Liste aus. Dieser Abschnitt enthält auch einige erweiterte Optionen, mit denen Sie gezielte Benachrichtigungen erstellen können, basierend auf Faktoren wie der App-Version, dem Gebietsschema des Geräts und dem Zeitpunkt, zu dem sich der Benutzer zuletzt mit Ihrer App beschäftigt hat. In unserer Testbenachrichtigung wird keine dieser Optionen verwendet. Wenn Sie jedoch sehen möchten, welche Optionen verfügbar sind, wählen Sie "und ..." und durchsuchen Sie die nachfolgende Dropdown-Liste.

  • Wenn Sie mit der Bearbeitung dieses Abschnitts fertig sind, klicken Sie auf "Weiter".
  • Angenommen, Sie möchten dies sofort senden, öffnen Sie die Dropdown-Liste "An berechtigte Benutzer senden" und wählen Sie "Jetzt" aus.
  • Klicken Sie unten rechts auf dem Bildschirm auf "Veröffentlichen".
  • Überprüfen Sie alle Informationen im nachfolgenden Popup und wählen Sie "Veröffentlichen", wenn Sie fortfahren möchten.

Nach einigen Augenblicken sollten alle Clientgeräte, die Sie als Ziel ausgewählt haben, diese Benachrichtigung in ihrer Taskleiste erhalten.

In den meisten Fällen werden FCM-Benachrichtigungen sofort zugestellt. Gelegentlich kann es jedoch einige Minuten dauern, bis eine E-Mail eintrifft. Bei verspäteter Benachrichtigung sind Sie also nicht in Panik.

Festlegen einiger Ziele: Benachrichtigungskonvertierungsereignisse

Wenn Sie eine Benachrichtigung erstellen, haben Sie in der Regel ein Ziel vor Augen - ob dies dazu führt, dass Benutzer zu Ihrer App zurückkehren, bei einem In-App-Kauf davon überzeugt werden oder einfach Ihre Benachrichtigung öffnen.

Sie können Ihrer Benachrichtigung mit dem Notification Composer ein Ziel zuweisen und dann die Leistung dieser Benachrichtigung im FCM-Berichts-Dashboard verfolgen.

Erweitern Sie zum Festlegen eines Ziels den Abschnitt "Conversion-Ereignisse" von Navigation Composer, öffnen Sie das zugehörige Dropdown-Menü und wählen Sie aus den verfügbaren Conversion-Ereignissen aus.

War Ihre Benachrichtigung erfolgreich?

Nach dem Senden einer Benachrichtigung können Sie die Leistung im FCM-Berichts-Dashboard analysieren, das bei jedem Senden einer neuen Benachrichtigung automatisch geladen wird, oder Sie können direkt auf das Dashboard zugreifen.

Auch wenn Sie keine expliziten Conversion-Ziele festgelegt haben, können Sie durch Vergleichen der Anzahl der zugestellten E-Mails mit der Anzahl der geöffneten E-Mails einschätzen, ob Benutzer auf Ihre Benachrichtigungen reagieren.

Sie können auch eine beliebige Option in dieser Liste auswählen, um die Sende-, Öffnungs- und Konvertierungsdaten als Diagramm anzuzeigen. Wenn Sie Conversion-Ziele festlegen, finden Sie hier auch die Statistiken zu diesen Zielen.

Was ist, wenn meine App im Vordergrund steht?

FCM-Benachrichtigungen verhalten sich je nach Status der Clientanwendung unterschiedlich.

Standardmäßig zeigt Ihre App keine FCMs an, die sie empfängt, während sie sich im Vordergrund befindet. Wenn Sie also eine senden, gibt es keine Garantie, dass Ihre Benutzer dies tatsächlich tun sehen Das .

Um auf die s zu reagieren, erhält Ihre App, während sie sich in der befindet VordergrundSie müssen den FirebaseMessagingService erweitern, die onReceived-Methode überschreiben und dann den Inhalt mit getNotification oder getData abrufen, je nachdem, ob Sie mit Daten, Benachrichtigungen oder beidem arbeiten.

Erstellen Sie eine neue Java-Klasse mit dem Namen "MyFirebaseMessagingService" und fügen Sie Folgendes hinzu:

public class MyFirebaseMessagingService erweitert FirebaseMessagingService {@Override public void onReceived (Remote) {super.onReceived (Remote);

Sie müssen auch ein Benachrichtigungsobjekt erstellen. Hier können Sie Ihre Benachrichtigung anpassen, z. B. den Sound auswählen, der abgespielt werden soll, wenn der Benutzer diese Benachrichtigung erhält, oder ein benutzerdefiniertes Benachrichtigungssymbol anwenden. Sie müssen den Inhalt auch aus den Daten oder der Benachrichtigung abrufen. Beispiel:

NotificationCompat.Builder notificationBuilder = new. setStyle (new NotificationCompat.BigTextStyle ()) .setSound (RingtoneManager.getDefaultUri (RingtoneManager.TYPE_NOTIFICATION)) .setSmallIcon (R.mipmap.ic_launcher) .setAutoCancel (true); NotificationManager notificationManager = (NotificationManager) getSystemService (Context.NOTIFICATION_SERVICE); notificationManager.notify (0, notificationBuilder.build ()); }}

Vergessen Sie nicht, Ihren erstellten Service zu Ihrem Manifest hinzuzufügen:

Jedes Mal, wenn Ihre App eine FCM empfängt, während sie im Vordergrund ist, wird sie an den onReceived () -Handler übermittelt, und Ihre App ergreift dann die von Ihnen definierten Maßnahmen, z. B. das Posten der Benachrichtigung oder das Aktualisieren des Inhalts Ihrer App.

Attraktivere Benachrichtigungen: Richten Sie sich an Ihre Benutzer

Bisher haben wir die gleiche Benachrichtigung an unsere gesamte Nutzerbasis gesendet, aber Benachrichtigungen sind weitaus ansprechender, wenn sie sich an bestimmte Nutzer richten.

Mit dem Notification Composer können Sie verschiedene Benachrichtigungen an verschiedene Teile Ihrer Benutzerbasis senden. Wechseln Sie zum Notification Composer, und erstellen Sie Ihre Benachrichtigung wie gewohnt. Klicken Sie jedoch im Abschnitt "Ziel" auf "und". Auf diese Weise erhalten Sie Zugriff auf ein neues Dropdown-Menü mit den folgenden Optionen:

  • Ausführung. Auf diese Weise können Sie Geräte ansprechen oder ausschließen, auf denen bestimmte Versionen Ihrer Anwendung ausgeführt werden. Sie können beispielsweise Benachrichtigungen an Personen senden, auf denen die kostenlose Version ausgeführt wird, und diese dazu auffordern, auf die Premium-Version Ihrer App zu aktualisieren.
  • Sprache. Mit dieser Einstellung können Sie die verschiedenen von Ihrer Anwendung unterstützten Sprachen und Gebietsschemas als Ziel festlegen oder ausschließen, z. B. Benachrichtigungen erstellen, die auf verschiedene Zeitzonen oder Sprachen zugeschnitten sind.
  • Benutzerpublikum (en). Auf diese Weise können Sie verschiedene Bereiche Ihrer Zielgruppe ansprechen oder ausschließen. Mit dieser Einstellung können Sie beispielsweise Personen verführen, die In-App-Käufe getätigt haben, indem Sie ihnen einen Rabatt anbieten oder ihre Aufmerksamkeit auf all die erstaunlichen neuen In-App-Produkte lenken, die Sie gerade herausgebracht haben.
  • Benutzereigenschaft. Wenn Sie Firebase Analytics eingerichtet haben, können Sie über die Benutzereigenschaften auf eine Reihe von Informationen zu Ihrer Zielgruppe zugreifen. Sie können diese Eigenschaften in Kombination mit FCM verwenden, um gezielte Benachrichtigungen an bestimmte Bereiche Ihrer Benutzerbasis zu senden, z. B. an Personen im Alter von 25 bis 34 Jahren, die sich für Sport interessieren.
  • Prognose. Wenn Sie Firebase-Vorhersagen eingerichtet haben, können Sie Benutzer darauf ausrichten, wie wahrscheinlich es ist, dass sie sich in den nächsten 7 Tagen auf ein bestimmtes Verhalten einlassen. Warnt Predictions beispielsweise, dass sich wahrscheinlich jemand von Ihrem Handyspiel löst, können Sie FCM verwenden, um ihn zur Teilnahme an einer neuen Quest einzuladen oder ihm eine Spielwährung zuzusenden.
  • Letzte App-Verpflichtung. Wenn ein Benutzer Ihre App schon länger nicht mehr gestartet hat, können Sie diese Einstellung verwenden, um ihm einige Benachrichtigungen zu senden und ihn an den großartigen Inhalt zu erinnern, den Ihre App zu bieten hat.
  • Zuerst öffnen. Auf diese Weise können Sie Benachrichtigungen senden, die darauf basieren, wann der Benutzer Ihre App zum ersten Mal geöffnet hat. Beispielsweise können Sie neuen Benutzern helfen, auf dem Laufenden zu bleiben, indem Sie ihnen Benachrichtigungen mit nützlichen Tipps und Ratschlägen senden.

Targeting eines einzelnen Geräts mit Registrierungstoken

Wir haben bereits gesehen, wie Sie gezielte Benachrichtigungen senden können, die auf Faktoren wie dem Alter des Nutzers, seinen Interessen und dem Zeitpunkt, zu dem er sich das letzte Mal mit Ihrer App beschäftigt hat, basieren gleich werden spezifischer. In diesem letzten Abschnitt zeige ich Ihnen, wie Sie eine FCM-Benachrichtigung an a senden Single Gerät.

Wenn der Benutzer Ihre App zum ersten Mal startet, generiert das FCM-SDK ein Registrierungstoken für diese Client-App-Instanz. Mit FirebaseInstanceId.getInstance (). GetInstanceId () können Sie dieses Registrierungstoken erfassen und anschließend eine Benachrichtigung an dieses bestimmte Token senden.

Beachten Sie, dass Sie in einem realen Projekt normalerweise ein Token erfassen, indem Sie es an Ihren App-Server senden und mit der von Ihnen bevorzugten Methode speichern. Um die Dinge jedoch einfacher zu gestalten, drucke ich dieses Token einfach auf Logcat von Android Studio.

Hier ist meine abgeschlossene MainActivity:

android.support.v7.app.AppCompatActivity importieren; android.os.Bundle importieren; import android.support.annotation.NonNull; import android.util.Log; import com.google.android.gms.tasks.OnCompleteListener; import com.google.android.gms.tasks.Task; import com.google.firebase.iid.FirebaseInstanceId; import com.google.firebase.iid.InstanceIdResult; public class MainActivity erweitert AppCompatActivity {private static final String TAG = "MainActivity"; @Override protected void onCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceState); setContentView (R.layout.activity_main); FirebaseInstanceId.getInstance (). GetInstanceId () .addOnCompleteListener (neuer OnCompleteListener)() {@Override public void onComplete (@NonNull Task task) {if (! task.isSuccessful ()) {// To do // return; } // Instanz-ID-Token abrufen // Zeichenfolge-Token = task.getResult (). GetToken (); String msg = getString (R.string.fcm_token, Token); Log.d (TAG, msg); }}); }}

Öffnen Sie Ihre Datei "strings.xml" und erstellen Sie die Zeichenfolgenressource "fcm_token", auf die wir in unserer MainActivity verweisen:

FCM-Token:% s

Sie können jetzt das eindeutige Token Ihres Geräts abrufen:

  • Installieren Sie Ihr Projekt auf dem angeschlossenen Android-Gerät oder AVD.
  • Öffnen Sie Logcat von Android Studio, indem Sie die Registerkarte "Logcat" auswählen (in der folgenden Abbildung befindet sich der Cursor).

  • Das Token Ihres Geräts wird im Abschnitt "Debug" von Logcat gedruckt. Öffnen Sie also die Dropdown-Liste und wählen Sie "Debug".

Abhängig von der Informationsmenge in Ihrem Logcat kann es schwierig sein, die gesuchte Zeile zu finden. Wenn Sie Probleme haben, suchen Sie nach dem Wort "Token" oder versuchen Sie, die App zu schließen und neu zu starten.

Sobald Sie das Token abgerufen haben, können Sie es verwenden, um eine Push-Benachrichtigung an dieses bestimmte Gerät zu senden:

  • Rufen Sie die Firebase-Konsole auf und wählen Sie Ihr Projekt aus dem Dropdown-Menü aus, falls Sie dies noch nicht getan haben.
  • Wählen Sie im linken Menü „Cloud Messaging“.
  • Klicken Sie auf die Schaltfläche "Neue Benachrichtigung".
  • Geben Sie wie gewohnt Titel und Text ein, und klicken Sie dann auf "Auf Gerät testen".

  • Kopieren Sie Ihr Token in das Feld "Instanz hinzufügen ...", und klicken Sie dann auf das kleine blaue "+" -Symbol, das angezeigt wird.
  • Aktivieren Sie das zugehörige Kontrollkästchen des Tokens.

  • Klicken Sie auf "Test".

Diese Benachrichtigung wird jetzt nur auf dem Ziel-Client-Gerät angezeigt.

Einpacken

In diesem Artikel habe ich Ihnen gezeigt, wie Sie mit Firebase Cloud Messaging Push-Benachrichtigungen für Android senden und Benachrichtigungen erstellen, die auf verschiedene Bereiche Ihrer Benutzerbasis abzielen.

Werden Sie FCM in Ihren eigenen Android-Projekten verwenden? Lass es uns in den Kommentaren unten wissen!

Wie ie wahrcheinlich bemerkt haben, gibt e in der martphone-Branche einen neuen Trend, Audio-Chip in tudioqualität in moderne Flaggchiff-martphone zu integrieren. Ein 32-Bit-DAC (Digital-Analog-W...

Ein ktichy Neonchild mit einem Pfirich begrüßt die Beucher am tandort Atlanta.Ich habe WeWork für alle Co-Working-pace augewählt, da e eine der am beten zugänglichen Optionen ...

Wir Empfehlen Ihnen, Zu Lesen