Skickar Android push-aviseringar med Firebase Cloud Messaging

Författare: Louise Ward
Skapelsedatum: 4 Februari 2021
Uppdatera Datum: 1 Juli 2024
Anonim
Flutter : Deep link tutorial for beginners Part 1 | part 2, 3 in description | flutter coding
Video: Flutter : Deep link tutorial for beginners Part 1 | part 2, 3 in description | flutter coding

Innehåll


Även om det går utanför denna tutorials räckvidd, kan du också använda FCM för uppströmsmeddelanden, där FCM får en från klientapplikationen, eller för att meddela din app när det finns nya data tillgängliga för den att ladda ner. På detta sätt kan du säkerställa att kommunikation mellan din appserver och klientapp sker bara när det är nödvändigt, vilket är mycket effektivare än klientappen som kontaktar servern med regelbundna intervall, på off-chansen kan det finnas några nya data tillgängliga.

Eftersom FCM är en del av Firebase, spelar det också fint med andra Firebase-tjänster. När du har behärskat FCM-väsentligheterna kanske du vill använda A / B-test för att identifiera vilka aviseringar som är de mest effektiva eller använda Firebase Predictions för att tillämpa kraftfull maskininlärning på all analysdata som genereras från dina olika FCM-kampanjer.


FCM stöder två typer av s:

  • Meddelande s. Klientapplikationen kommer att bete sig annorlunda beroende på om det är i bakgrunden eller i förgrunden när den tar emot FCM. Om din app är i bakgrunden kommer Firebase SDK automatiskt att bearbeta och visa den som ett meddelande i enhetens systemfält. Eftersom Android-systemet bygger meddelandet åt dig är detta ett av de enklaste sätten att skicka push-aviseringar till dina användare. Om din app får en FCM medan den är i förgrunden, kommer systemet vana hantera den här meddelandet automatiskt, så att du kan behandla i appens on-mottagna () återuppringning. Vi kommer att utforska onReceived () senare i den här tutorialen, men för tillfället bara vara medveten om att om din app får ett tag är den i förgrunden så kommer den som standard inte visas för användaren.
  • Data s. Till skillnad från meddelanden kan du använda data för att skicka anpassade dataelement till klientapplikationen. FCM sätter emellertid en 4KB-gräns för dessa data, så om din nyttolast överskrider 4KB måste du hämta ytterligare data med WorkManager eller JobScheduler API.

I den här handledningen kommer vi att fokusera på aviseringar.


Vad sägs om Google Cloud Messaging?

Om du använder Google Cloud Messaging (GCM) -server och klient-API: er finns det några dåliga nyheter: den här tjänsten har redan avskrivits och Google planerar att stänga av "de flesta" GCM-tjänster i april 2019. Om du fortfarande är med GCM, bör du börja migrera dina projekt till FCM nu och måste ha slutfört din migrering senast april 2019.

Lägga till Firebase till ditt Android-projekt

Låt oss se hur lätt det är att lägga till grundläggande FCM-stöd till din app och sedan använda den för att skicka pushmeddelanden till dina användare.

Eftersom FCM är en Firebase-tjänst måste du lägga till Firebase i din app:

  • Gå över till Firebase Console.
  • Välj ”Lägg till projekt” och ge ditt projekt ett namn.
  • Läs villkoren. Om du gärna fortsätter väljer du "Jag accepterar ..." följt av "Skapa projekt."
  • Välj "Lägg till eldstad i din Android-app."
  • Ange projektets paketnamn och klicka sedan på "Registrera app."
  • Välj "Ladda ner google-services.json."
  • Dra och släpp google-services.json-filen i Android Studio i projektets "app" -katalog.
  • Öppna din build.gradle-fil på projektnivå och lägg till följande:

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

  • Öppna din build.gradle-fil på appnivå och lägg till Googles serviceplugin, plus beroenden för Firebase Core och FCM:

// Lägg till Google Services-plugin // applicera plugin: com.google.gms.google-services ... ... ... beroenden {implementeringsfilTree (dir: libs, inkludera:) // Lägg till Firebase Core // implementering com.google.firebase: firebase-core: 16.0.1 // Lägg till FCM // implementering com.google.firebase: firebase-messaging: 17.3.4

  • Synkronisera dina ändringar när du uppmanas.
  • Därefter måste du låta Firebase Console veta att du har lagt till Firebase till ditt projekt. Installera din app på antingen en fysisk Android-smartphone eller surfplatta eller en Android Virtual Device (AVD).
  • Tillbaka i Firebase Console, välj "Kör app för att verifiera installationen."
  • När Firebase har upptäckt din app ser du "Grattis". Välj "Fortsätt till konsolen."

Skickar ditt första push-meddelande med Firebase

Och det är allt! Du kan nu skicka ett push-meddelande till dina användare, och den meddelandet kommer att visas i enhetens systemfält (för nu, låt oss anta att din app inte är i förgrunden när den levereras).

Du skapar FCM-aviseringar med hjälp av Notifications Composer, som är tillgängligt via Firebase Console:

  • Se till att din app är installerad och kör i bakgrunden och att din enhet har en aktiv Internet-anslutning.
  • I Firebase Console väljer du "Cloud Messaging" från menyn till vänster.

  • Välj "Skicka din första."
  • Ge din titel och lite kroppstext och klicka sedan på "Nästa".

  • Öppna rullgardinsmenyn "Välj app" och välj din applikation från listan. Det här avsnittet innehåller också några avancerade alternativ som du kan använda för att skapa riktade aviseringar, baserade på faktorer som appversion, enhetens landstorlek och förra gången användaren engagerade sig i din app. Vi kommer inte att använda något av dessa alternativ i vårt testmeddelande, men om du vill se vad som är tillgängligt väljer du "och ..." och utforskar den nedrullningsbara dropdown.

  • När du är klar med att redigera det här avsnittet klickar du på "Nästa".
  • Förutsatt att du vill skicka detta direkt, öppnar du rullgardinsmenyn "Skicka till berättigade användare" och väljer "Nu".
  • Klicka på ”Publicera” längst ner till höger på skärmen.
  • Kontrollera all information i den följande popupen och välj "Publicera" om du gärna fortsätter.

Efter några ögonblick bör alla klientenheter som du riktade få detta meddelande i systemfältet.

För det mesta kommer FCM-aviseringar att levereras omedelbart, men ibland kan det ta några minuter innan en anländer, så få inte panik om din avisering är försenad.

Ställa in några mål: Händelser för omvandling av aviseringar

När du skapar en avisering har du vanligtvis ett mål i åtanke - oavsett om det är att driva användare tillbaka till din app, övertyga dem om att stänga ut i ett köp i appen eller bara öppna din avisering.

Du kan tilldela ett meddelande till din avisering med hjälp av meddelandekomponisten och sedan spåra den aviseringens prestanda i FCM-rapporteringspanelen.

För att ställa in ett mål klickar du på för att utöka avsnittet ”Konverteringshändelser” i Navigation Composer, öppna sedan medföljande rullgardinsmeny och välj bland de tillgängliga konverteringshändelserna.

Var din anmälan framgång?

När du har skickat ett meddelande kan du analysera dess prestanda i FCM-rapporteringspanelen, som bör laddas automatiskt varje gång du skickar en ny, eller så kan du komma åt instrumentpanelen direkt.

Även om du inte angav några uttryckliga konverteringsmål kan du fortfarande mäta om användare agerar på dina meddelanden, genom att jämföra antalet levererade s, med antalet öppnade.

Du kan också välja valfri i listan för att se skicka, öppna och konverteringsdata som en graf. Om du sätter några konverteringsmål är det också här du hittar statistiken för dessa mål.

Vad händer om min app är i förgrunden?

FCM-aviseringar uppför sig annorlunda beroende på tillståndet för klientansökan.

Som standard visar din app inga FCM: er som den får medan den är i förgrunden, så när du skickar det finns det ingen garanti att dina användare faktiskt kommer att se det där .

Att agera på de appar som din app får medan den finns i förgrundmåste du utöka FirebaseMessagingService, åsidosätta metoden onReceived och sedan hämta innehållet med antingen getNotification eller getData, beroende på om du arbetar med data eller meddelanden eller båda.

Skapa en ny Java-klass med namnet “MyFirebaseMessagingService” och lägg sedan till följande:

public class MyFirebaseMessagingService utökar FirebaseMessagingService {@Override public void onReceived (Remote) {super.onReceived (remote);

Du måste också skapa ett meddelandeobjekt. Det här är din chans att anpassa din avisering, till exempel att välja ljudet som ska spelas upp när användaren får det här meddelandet, eller använda en anpassad meddelandeikon. Du måste också hämta innehållet från uppgifterna eller meddelandet, till exempel:

NotificationCompat.Builder meddelandeBuilder = nytt NotificationCompat.Builder (detta, "channel_id") .setContentTitle (remote.getNotification (). GetTitle ()) .setContentText (remote.getNotification (). GetBody ()) .setPriority (NotificationCompat.PRIORITY_FA). setStyle (new NotificationCompat.BigTextStyle ()) .setSound (RingtoneManager.getDefaultUri (RingtoneManager.TYPE_NOTIFICATION)) .setSmallIcon (R.mipmap.ic_launcher) .setAutoCancel (true); NotificationManager noticeManager = (NotificationManager) getSystemService (Context.NOTIFICATION_SERVICE); meddelandeManager.notifiera (0, meddelandeBuilder.byggnad ()); }}

När du har skapat din tjänst, glöm inte att lägga till den i ditt manifest:

Varje gång din app får en FCM medan den är i förgrunden kommer den att levereras till onReceived () -handlaren och din app kommer sedan att vidta den åtgärd som du har definierat, till exempel att publicera meddelandet eller uppdatera appens innehåll.

Mer engagerande aviseringar: Rikta in dina användare

Fram till nu har vi skickat samma meddelande till hela användarbasen, men aviseringar är mycket mer engagerande när de riktas till specifika användare.

Du kan använda Meddelande Composer för att skicka olika aviseringar, till olika delar av din användarbas. Gå till meddelandekomponisten och skapa din avisering som normalt, men i avsnittet "Mål" klickar du på "och." Detta ger dig tillgång till en ny rullgardinsmeny som innehåller följande alternativ:

  • Version. Detta gör att du kan rikta in eller utesluta enheter som kör specifika versioner av din applikation. Du kan till exempel skicka aviseringar till personer som kör gratisversionen och uppmuntra dem att uppgradera till din app Premium-version.
  • Språk. Du kan använda den här inställningen för att rikta in eller utesluta olika språk och platser som din applikation stöder, till exempel att skapa meddelanden som är anpassade för olika tidszoner eller språk.
  • Användares publik (er). På så sätt kan du rikta in eller utesluta olika delar av din publik. Till exempel kan du använda den här inställningen för att locka människor som har en historia att göra inköp i appen, genom att erbjuda dem en rabatt eller uppmärksamma alla fantastiska nya produkter i appen som du just har släppt.
  • Användaregendom. Om du har installerat Firebase Analytics har du tillgång till en rad information om din målgrupp via användaregenskaper. Du kan använda dessa egenskaper i kombination med FCM för att skicka riktade aviseringar till mycket specifika delar av din användarbas, till exempel personer inom åldersområdet 25-34 som är intresserade av sport.
  • Förutsägelse. Om du har konfigurerat Firebase-förutsägelser kan du rikta in sig på användare baserat på hur troligt att de kommer att engagera sig i ett visst beteende under de kommande sju dagarna. Till exempel, om Predictions varnar för att någon sannolikt kommer att kopplas bort från ditt mobilspel, kan du använda FCM för att bjuda in dem att delta i en ny uppdrag eller för att skicka dem en viss valuta i spelet.
  • Senaste app-engagemang. Om en användare inte har startat din app på ett tag kan du använda den här inställningen för att skicka dem några aviseringar, bara för att påminna dem om allt det fantastiska innehållet som din app har att erbjuda.
  • Först öppen. På så sätt kan du skicka aviseringar baserat på första gången användaren öppnade din app, till exempel kan du hjälpa nya användare att få fart genom att skicka meddelanden med användbara tips och råd.

Inriktning på en enda enhet med registreringstecken

Vi har redan sett hur du skickar riktade aviseringar baserade på faktorer som användarens ålder, intressen och förra gången de engagerade sig i din app, men du kan ge igen mer specifik. I det här sista avsnittet visar jag dig hur du skickar ett FCM-meddelande till en enda anordning.

När användaren startar din app för första gången genererar FCM SDK ett registreringsnummer för den klientapp-instansen. Du kan använda FirebaseInstanceId.getInstance (). GetInstanceId () för att fånga detta registrerings-token och sedan skicka ett meddelande till detta specifika token.

Observera att i ett verkligt projekt skulle du vanligtvis fånga ett token genom att skicka det till din appserver och lagra det med din föredragna metod, men för att hjälpa till att hålla saker raka kommer jag helt enkelt att skriva ut detta token till Android Studio's Logcat.

Här är min avslutade MainActivity:

importera android.support.v7.app.AppCompatActivity; import android.os.Bundle; importera android.support.annotation.NonNull; import android.util.Log; import com.google.android.gms.tasks.OnCompleteListener; importera com.google.android.gms.tasks.Task; import com.google.firebase.iid.FirebaseInstanceId; import com.google.firebase.iid.InstanceIdResult; public class MainActivity utökar AppCompatActivity {privat statisk final String TAG = "MainActivity"; @Override skyddat tomrum onCreate (Bundle SavedInstanceState) {super.onCreate (SavedInstanceState); setContentView (R.layout.activity_main); FirebaseInstanceId.getInstance (). GetInstanceId () .addOnCompleteListener (ny OnCompleteListener() {@ Övergå offentligt ogiltigt onComplete (@NonNull Task uppgift) {if (! task.isSucces ()) {// Att göra // returnera; } // Hämta instansen ID-token // String token = task.getResult (). GetToken (); Sträng msg = getString (R.string.fcm_token, token); Log.d (TAG, msg); }}); }}

Öppna din strings.xml-fil och skapa strängresursen "fcm_token" som vi refererar till i vår MainActivity:

FCM-token:% s

Du kan nu hämta enhetens unika token:

  • Installera ditt projekt på den anslutna Android-enheten eller AVD.
  • Öppna Android Studio's Logcat genom att välja fliken "Logcat" (där markören är placerad i följande skärmdump).

  • Enhetens token skrivs ut i avsnittet "Felsökning" i Logcat, så öppna rullgardinsmenyn och välj "Felsökning."

Beroende på hur mycket information som finns i din Logcat kan det vara svårt att hitta den rad du letar efter. Om du kämpar kan du söka efter ordet "token" eller försöka stänga och starta om appen.

När du har hämtat tokenet kan du använda det för att skicka ett push-meddelande till just den här enheten:

  • Gå till Firebase Console och välj ditt projekt från rullgardinsmenyn om du inte redan har gjort det.
  • Välj "Cloud Messaging" från vänster-menyn.
  • Klicka på knappen "Ny avisering".
  • Ange titel och text som vanligt, men klicka sedan på "Testa på enheten."

  • Kopiera / klistra in ditt token i fältet "Lägg till en instans ..." och klicka sedan på den lilla blå "+" -ikonen som visas.
  • Markera symbolens bifogade kryssruta.

  • Klicka på "Test".

Den här meddelanden visas nu endast på den riktade klientenheten.

Avslutar

I den här artikeln visade jag dig hur du skickar Android push-meddelanden med Firebase Cloud Messaging och hur du skapar aviseringar som riktar sig till olika delar av din användarbas.

Ska du använda FCM i dina egna Android-projekt? Låt oss veta i kommentarerna nedan!

Det är verkligen ett förenat drag för företaget, men Apple borde inte öka beröm (vare ig det är på evenemanget eller på in webbplat) för att äntl...

Det finn 10 frågor i denna frågeport, om alla handlar om några av de törta och met intreanta teknikrelaterade berättelerna från 2019. Dea inkluderar produktlaneringar, ju...

Nya Artiklar