Sender Android push-meddelelser med Firebase Cloud Messaging

Forfatter: Louise Ward
Oprettelsesdato: 4 Februar 2021
Opdateringsdato: 1 Juli 2024
Anonim
Sender Android push-meddelelser med Firebase Cloud Messaging - Apps
Sender Android push-meddelelser med Firebase Cloud Messaging - Apps

Indhold


Selvom det er uden for denne tutorials rækkevidde, kan du også bruge FCM til opstrømsmeddelelser, hvor FCM modtager en fra klientapplikationen, eller til at underrette din app, når der er nye data til rådighed for den at downloade. På denne måde kan du sikre, at kommunikation mellem din app-server og klient-app kun forekommer, når det er nødvendigt, hvilket er meget mere effektivt end klient-appen, der kontakter serveren med regelmæssige intervaller. Fra off-chancen er der muligvis nogle nye data tilgængelige.

Da FCM er en del af Firebase, spiller det også pænt med andre Firebase-tjenester. Når du har mestret FCM-essentials, kan du bruge A / B-test til at identificere, hvilke underretninger der er mest effektive, eller bruge Firebase-forudsigelser til at anvende kraftig maskinlæring til alle analysedata, der er genereret fra dine forskellige FCM-kampagner.

FCM understøtter to typer af s:


  • Meddelelse s. Klientapplikationen opfører sig forskelligt, afhængigt af om det er i baggrunden eller i forgrunden, når den modtager FCM. Hvis din app er i baggrunden, behandler Firebase SDK automatisk og viser den som en anmeldelse i enhedens systembakke. Da Android-systemet bygger underretningen for dig, er dette en af ​​de nemmeste måder at sende push-meddelelser til dine brugere. Hvis din app modtager en FCM, mens den er i forgrunden, så er systemet vil ikke håndter denne meddelelse automatisk, så du kan behandle i din app's modtagne () tilbagekald. Vi vil undersøge onReceived () senere i denne tutorial, men lige nu skal du bare være opmærksom på, at hvis din app får et stykke tid, den er i forgrunden, vises denne som standard ikke for brugeren.
  • Data s. I modsætning til underretninger kan du bruge data til at sende tilpassede dataelementer til klientapplikationen. Imidlertid placerer FCM en 4KB-grænse for disse data, så hvis din nyttelast overstiger 4 KB, skal du hente de yderligere data vha. WorkManager eller JobScheduler API.

I denne tutorial fokuserer vi på underretninger.


Hvad med Google Cloud Messaging?

Hvis du bruger Google Cloud Messaging (GCM) -serveren og klient-API'erne, er der nogle dårlige nyheder: denne service er allerede blevet forældet, og Google planlægger at slå "de fleste" GCM-tjenester i april 2019. Hvis du stadig er ved at bruge GCM, skal du begynde at migrere dine projekter til FCM nu og skal have afsluttet din migrering inden april 2019.

Føj Firebase til dit Android-projekt

Lad os se, hvor let det er at tilføje grundlæggende FCM-support til din app og derefter bruge den til at sende push-meddelelser til dine brugere.

Da FCM er en Firebase-tjeneste, skal du tilføje Firebase til din app:

  • Gå over til Firebase Console.
  • Vælg "Tilføj projekt", og giv dit projekt et navn.
  • Læs vilkårene og betingelserne. Hvis du er glad for at fortsætte, skal du vælge "Jeg accepterer ..." efterfulgt af "Opret projekt."
  • Vælg "Føj ildbase til din Android-app."
  • Indtast dit projekts pakkenavn, og klik derefter på "Registrer app."
  • Vælg "Download google-services.json."
  • I Android Studio skal du trække og slippe filen google-services.json til dit projekts "app" -katalog.
  • Åbn din build.gradle-fil på projektniveau, og tilføj følgende:

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

  • Åbn din build.gradle-fil på app-niveau, og tilføj Google Services-plugin plus afhængighederne for Firebase Core og FCM:

// Tilføj Google-tjenesten plugin // anvend plugin: com.google.gms.google-services ... ... ... afhængigheder {implementeringsfilTree (dir: libs, inkluderer:) // Tilføj Firebase Core // implementering com.google.firebase: firebase-core: 16.0.1 // Tilføj FCM // implementering com.google.firebase: firebase-messaging: 17.3.4

  • Synkroniser dine ændringer, når du bliver bedt om det.
  • Dernæst skal du fortælle Firebase Console, at du har tilføjet Firebase til dit projekt. Installer din app på enten en fysisk Android-smartphone eller -tablet eller en Android Virtual Device (AVD).
  • Tilbage i Firebase Console skal du vælge "Kør app for at bekræfte installationen."
  • Når Firebase har fundet din app, ser du en "Tillykke". Vælg "Fortsæt til konsollen."

Sender din første push-anmeldelse med Firebase

Og det er det! Du kan nu sende en push-anmeldelse til dine brugere, og denne meddelelse vises i enhedens systembakke (for nu, lad os antage, at din app ikke er i forgrunden, når den leveres).

Du opretter FCM-underretninger ved hjælp af Notifications Composer, som er tilgængelig via Firebase Console:

  • Sørg for, at din app er installeret og kører i baggrunden, og at din enhed har en aktiv internetforbindelse.
  • I “Firebase Console” skal du vælge “Cloud Messaging” i menuen til venstre.

  • Vælg "Send din første."
  • Giv din titel og noget teksttekst, og klik derefter på "Næste."

  • Åbn rullemenuen "Vælg app", og vælg din applikation på listen. Dette afsnit indeholder også nogle avancerede indstillinger, som du kan bruge til at oprette målrettede underretninger, baseret på faktorer som appversion, enhedens landestand og sidste gang, brugeren engagerede sig i din app. Vi bruger ikke nogen af ​​disse indstillinger i vores testmeddelelse, men hvis du vil se, hvad der er tilgængeligt, skal du vælge "og ..." og udforske den efterfølgende dropdown.

  • Når du er færdig med at redigere dette afsnit, skal du klikke på "Næste".
  • Hvis du antager, at du vil sende dette med det samme, skal du åbne rullemenuen "Send til kvalificerede brugere" og vælge "Nu".
  • Klik på “Publicer” nederst til højre på skærmen.
  • Kontroller alle oplysningerne i den efterfølgende popup, og hvis du er glad for at fortsætte, skal du vælge "Publicer".

Efter nogle få øjeblikke skulle alle klientenheder, du målrettede, modtage denne meddelelse i deres systembakke.

Det meste af tiden vil FCM-underretninger blive leveret med det samme, men lejlighedsvis kan det tage et par minutter, før en ankommer, så du må ikke få panik, hvis din anmeldelse er forsinket.

Indstilling af nogle mål: Konferencebegivenheder til anmeldelse

Når du opretter en anmeldelse, har du normalt et mål i tankerne - uanset om det fører brugerne tilbage til din app, overbeviser dem om at sprøjte ud ved et køb i appen eller blot åbne din anmeldelse.

Du kan tildele et mål til din anmeldelse ved hjælp af meddelelseskomponisten og derefter spore denne meddelelses ydelse i FCM-rapporteringsdashboardet.

For at indstille et mål skal du klikke for at udvide Navigation Composers afsnit "Konverteringsbegivenheder", derefter åbne den medfølgende dropdown og vælge mellem de tilgængelige konverteringshændelser.

Var din anmeldelse en succes?

Efter at have sendt en anmeldelse, kan du analysere dens ydelse i FCM-rapporteringsdashboardet, som skal indlæses automatisk, hver gang du sender et nyt, eller du kan få direkte adgang til dashboardet.

Selv hvis du ikke har angivet nogen eksplicitte konverteringsmål, kan du stadig måle om brugere handler på dine underretninger ved at sammenligne antallet af leverede s med antallet af åbne.

Du kan også vælge en hvilken som helst på denne liste for at se send, åbne og konverteringsdata som en graf. Hvis du angiver konverteringsmål, er det også her, du finder statistikkerne vedrørende disse mål.

Hvad hvis min app er i forgrunden?

FCM-underretninger opfører sig forskelligt afhængigt af status for klientansøgningen.

Som standard viser din app ikke nogen FCM'er, den modtager, mens den er i forgrunden, så når du sender en der er der ingen garanti for, at dine brugere faktisk vil se at .

At handle på de s, din app modtager, mens den er i forgrunden, skal du udvide FirebaseMessagingService, tilsidesætte metoden OnReceived og derefter hente indholdet ved hjælp af enten getNotification eller getData, afhængigt af om du arbejder med data eller underretninger eller begge dele.

Opret en ny Java-klasse med navnet “MyFirebaseMessagingService” og tilføj derefter følgende:

offentlig klasse MyFirebaseMessagingService udvider FirebaseMessagingService {@Override public void onReceived (Remote) {super.onReceived (remote);

Du skal også oprette et underretningsobjekt. Dette er din chance for at tilpasse din anmeldelse, for eksempel at vælge den lyd, der skal afspilles, når brugeren modtager denne meddelelse, eller anvende et tilpasset meddelelsesikon. Du skal også hente indholdet fra dataene eller underretningen, for eksempel:

NotificationCompat.Builder meddelelseBuilder = nyt NotificationCompat.Builder (dette, "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 (sand); NotificationManager notificationManager = (NotificationManager) getSystemService (Context.NOTIFICATION_SERVICE); anmeldelseManager.notify (0, notificationBuilder.build ()); }}

Når du har oprettet din tjeneste, skal du ikke glemme at føje den til din manifest:

Hver gang din app modtager en FCM, mens den er i forgrunden, vil den blive leveret til onReceived () -handleren, og din app vil derefter tage den handling, der er defineret af dig, såsom at sende meddelelsen eller opdatere din app's indhold.

Mere spændende underretninger: Målretning mod dine brugere

Indtil nu har vi sendt den samme anmeldelse til hele vores brugerbase, men underretninger er langt mere engagerende, når de er målrettet mod specifikke brugere.

Du kan bruge meddelelseskomponisten til at sende forskellige underretninger til forskellige dele af din brugerbase. Gå over til underretningskomponisten og opret din anmeldelse som normalt, men i afsnittet "Mål" skal du klikke på "og". Dette giver dig adgang til en ny dropdown, der indeholder følgende muligheder:

  • Version. Dette giver dig mulighed for at målrette mod eller ekskludere enheder, der kører specifikke versioner af din applikation. For eksempel kan du sende underretninger til folk, der kører den gratis version, og opfordre dem til at opgradere til din app's Premium-version.
  • Sprog. Du kan bruge denne indstilling til at målrette eller ekskludere de forskellige sprog og lokaliteter, som din applikation understøtter, f.eks. Oprette underretninger, der er skræddersyet til forskellige tidszoner eller sprog.
  • Brugerpublikum (er). Dette giver dig mulighed for at målrette mod eller ekskludere forskellige sektioner af dit publikum. For eksempel kan du bruge denne indstilling til at friste folk, der har en historie med at foretage køb i appen, ved at tilbyde dem en rabat eller henlede opmærksomheden på alle de fantastiske nye produkter i appen, du lige har frigivet.
  • Bruger ejendom. Hvis du har konfigureret Firebase Analytics, har du adgang til en række oplysninger om dit publikum via brugeregenskaber. Du kan bruge disse egenskaber i kombination med FCM til at sende målrettede underretninger til meget specifikke dele af din brugerbase, f.eks. Personer inden for aldersområdet 25-34 år, der er interesseret i sport.
  • Forudsigelse. Hvis du har konfigureret Firebase-forudsigelser, kan du målrette brugerne ud fra, hvor sandsynligt de er for at engagere sig i en bestemt adfærd i løbet af de næste syv dage. For eksempel, hvis Forudsigelser advarer om, at nogen sandsynligvis vil løsrive sig fra dit mobilspil, kan du bruge FCM til at invitere dem til at deltage i en ny mission eller til at sende dem noget i spillet.
  • Sidste appengagement. Hvis en bruger ikke har lanceret din app på et stykke tid, kan du bruge denne indstilling til at sende dem et par underretninger, bare for at minde dem om alt det store indhold, som din app har at tilbyde.
  • Først åben. Dette giver dig mulighed for at sende underretninger baseret på første gang, brugeren åbnede din app, for eksempel kan du hjælpe nye brugere med at komme op med hastigheden ved at sende dem meddelelser, der indeholder nyttige tip og råd.

Målretning mod en enkelt enhed med registreringstegn

Vi har allerede set, hvordan man sender målrettede underretninger baseret på faktorer som brugerens alder, interesser og sidste gang, de engagerede sig med din app, men du kan tag hævn mere specifik. I dette sidste afsnit viser jeg dig, hvordan du sender en FCM-anmeldelse til en enkelt apparat.

Når brugeren starter din app første gang, genererer FCM SDK et registrerings-token for den klient-app-forekomst. Du kan bruge FirebaseInstanceId.getInstance (). GetInstanceId () til at fange dette registrerings-token og derefter sende en anmeldelse til dette specifikke token.

Bemærk, at du i et ægte projekt typisk vil fange et token ved at sende det til din appserver og gemme det ved hjælp af din foretrukne metode, men for at hjælpe med at holde tingene ligefrem vil jeg blot udskrive dette token til Android Studios Logcat.

Her er min afsluttede MainActivity:

import android.support.v7.app.AppCompatActivity; import android.os.Bundle; 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; offentlig klasse MainActivity udvider AppCompatActivity {privat statisk final String TAG = "MainActivity"; @Override beskyttet tomrum onCreate (Bundle gemtInstanceState) {super.onCreate (gemtInstanceState); setContentView (R.layout.activity_main); FirebaseInstanceId.getInstance (). GetInstanceId () .addOnCompleteListener (ny OnCompleteListener() {@Overr offentlig tomhed onComplete (@NonNull Opgave opgave) {if (! task.isSucces ()) {// At gøre // returnere; } // Hent forekomst-ID-token // String token = task.getResult (). GetToken (); String msg = getString (R.string.fcm_token, token); Log.d (TAG, msg); }}); }}

Åbn din strings.xml-fil, og opret den "fcm_token" strengressource, som vi refererer til i vores MainActivity:

FCM-token:% s

Du kan nu hente din enheds unikke token:

  • Installer dit projekt på den tilsluttede Android-enhed eller AVD.
  • Åbn Android Studios Logcat ved at vælge fanen "Logcat" (hvor markøren er placeret i følgende skærmbillede).

  • Din enheds token udskrives til "Debug" -afsnittet i Logcat, så åbn rullemenuen og vælg "Debug".

Afhængig af mængden af ​​information i din Logcat, kan det være vanskeligt at se den linje, du leder efter. Hvis du kæmper, skal du køre en søgning efter ordet "token" eller prøve at lukke og derefter starte appen igen.

Når du har hentet tokenet, kan du bruge det til at sende en push-anmeldelse til netop denne enhed:

  • Gå over til Firebase Console og vælg dit projekt i rullemenuen, hvis du ikke allerede har gjort det.
  • Vælg “Cloud Messaging” i menuen til venstre.
  • Klik på knappen "Ny anmeldelse".
  • Indtast titlen og teksten som normalt, men klik derefter på "Test på enheden."

  • Kopier / indsæt dit token i feltet "Tilføj en instans ...", og klik derefter på det lille blå "+" ikon, der vises.
  • Vælg tokenens ledsagende afkrydsningsfelt.

  • Klik på "Test."

Denne anmeldelse vises nu kun på den målrettede klientenhed.

Afslutter

I denne artikel viste jeg dig, hvordan du sender Android push-meddelelser ved hjælp af Firebase Cloud Messaging, og hvordan du opretter meddelelser, der er målrettet mod forskellige sektioner i din brugerbase.

Skal du bruge FCM i dine egne Android-projekter? Fortæl os det i kommentarerne herunder!

Du kan nemt fylde Audio-Technica ATH-M50xBT i en take efter foldning.Audio-Technica ATH-M50xBT tager alt, hvad vi elkede ved den originale ATH-M50x og tilpaer det til trådlø lytning. Die hov...

Blogging er meget populært i die dage. Der er anlået 152 millioner blog på Internettet og godt over 350 millioner hvi du tæller Tumblr. Det er ikke vært at komme ind i, og det...

Sørg For At Se