Sende Android push-varsler med Firebase Cloud Messaging

Forfatter: Louise Ward
Opprettelsesdato: 4 Februar 2021
Oppdater Dato: 1 Juli 2024
Anonim
FirebaseUI Firestore RecyclerView Part 6 - ON CLICK INTERFACE - Android Studio Tutorial
Video: FirebaseUI Firestore RecyclerView Part 6 - ON CLICK INTERFACE - Android Studio Tutorial

Innhold


Selv om det er utenfor omfanget av denne opplæringen, kan du også bruke FCM for oppstrømsvarsler, der FCM mottar en fra klientprogrammet, eller for å varsle appen din når det er nye data tilgjengelig for den å laste ned. På denne måten kan du sikre at kommunikasjon mellom appserveren din og klientappen bare skjer når det er nødvendig, noe som er mye mer effektivt enn klientappen som kontakter serveren med jevne mellomrom. På sjansen kan det være noen nye data tilgjengelig.

Siden FCM er en del av Firebase, spiller den også fint sammen med andre Firebase-tjenester. Når du har mestret FCM-nødvendighetene, kan det være lurt å bruke A / B-testing for å identifisere hvilke varsler som er de mest effektive, eller bruke Firebase Predictions for å bruke kraftig maskinlæring på alle analysedataene som genereres fra de forskjellige FCM-kampanjene.

FCM støtter to typer s:


  • Varsel s. Klientapplikasjonen vil oppføre seg annerledes, avhengig av om den er i bakgrunnen eller i forgrunnen når den mottar FCM. Hvis appen din er i bakgrunnen, vil Firebase SDK automatisk behandle og vise den som et varsel i enhetens systemskuff. Siden Android-systemet bygger varslet for deg, er dette en av de enkleste måtene å sende pushvarsler til brukerne dine. Hvis appen din mottar en FCM mens den er i forgrunnen, så vil systemet vil ikke håndterer denne varslingen automatisk, slik at du kan behandle appens on-mottatte () tilbakeringing. Vi skal utforske onReceived () senere i denne opplæringen, men foreløpig er det bare å være klar over at hvis appen din får en stund den er i forgrunnen, så vil denne som standard ikke vises for brukeren.
  • Data s. I motsetning til varsling, kan du bruke data til å sende tilpassede dataelementer til klientprogrammet. Imidlertid plasserer FCM en 4KB-grense for disse dataene, så hvis nyttelasten din overstiger 4KB, må du hente tilleggsdataene med WorkManager eller JobScheduler API.

I denne opplæringen fokuserer vi på varsler.


Hva med Google Cloud Messaging?

Hvis du bruker Google Cloud Messaging (GCM) -server og klient-API-er, er det noen dårlige nyheter: denne tjenesten er allerede utdatert, og Google planlegger å slå av "de fleste" GCM-tjenester i april 2019. Hvis du fortsatt er ved å bruke GCM, så bør du begynne å migrere prosjektene dine til FCM nå, og må ha fullført migreringen innen april 2019.

Legge Firebase til Android-prosjektet ditt

La oss se hvor enkelt det er å legge til grunnleggende FCM-støtte til appen din, og deretter bruke den til å sende pushvarsler til brukerne dine.

Siden FCM er en Firebase-tjeneste, må du legge Firebase til appen din:

  • Gå over til Firebase Console.
  • Velg "Legg til prosjekt", og gi prosjektet et navn.
  • Les vilkårene. Hvis du er glad for å fortsette, velger du "Jeg godtar ..." etterfulgt av "Opprett prosjekt."
  • Velg "Legg Firebase til Android-appen din."
  • Skriv inn prosjektets pakkenavn, og klikk deretter på "Registrer app."
  • Velg "Last ned google-services.json."
  • I Android Studio drar og slipper du google-services.json-filen til prosjektets katalog.
  • Åpne build.gradle-filen på prosjektnivå og legg til følgende:

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

  • Åpne build.gradle-filen på appnivå, og legg til Google-tjenesteplugin, pluss avhengigheter for Firebase Core og FCM:

// Legg til Google-tjenesteplugin // bruk plugin: com.google.gms.google-services ... ... ... avhengigheter {implementeringsfilTree (dir: libs, inkluderer:) // Legg Firebase Core // implementering com.google.firebase: firebase-core: 16.0.1 // Legg til FCM // implementering com.google.firebase: firebase-messaging: 17.3.4

  • Når du blir bedt om det, synkroniser endringene.
  • Deretter må du gi Firebase Console beskjed om at du har lagt Firebase til prosjektet ditt. Installer appen din enten på en fysisk Android-smarttelefon eller -brett, eller på en Android Virtual Device (AVD).
  • Velg "Kjør app for å bekrefte installasjonen" i Firebase Console.
  • Når Firebase har oppdaget appen din, ser du "Gratulerer". Velg "Fortsett til konsollen."

Sender den første pushvarslingen din med Firebase

Og det er det! Du kan nå sende en pushvarsling til brukerne dine, og den varslingen vil vises i enhetens systemskuff (for nå, la oss anta at appen din ikke er i forgrunnen når den leveres).

Du oppretter FCM-varsler ved å bruke varslingskomponisten, som er tilgjengelig via Firebase Console:

  • Forsikre deg om at appen din er installert og kjører i bakgrunnen, og at enheten din har en aktiv Internett-tilkobling.
  • I “Firebase Console” velger du “Cloud Messaging” fra menyen til venstre.

  • Velg "Send din første."
  • Gi tittelen din og litt teksttekst, og klikk deretter "Neste."

  • Åpne rullegardinmenyen "Velg app", og velg applikasjonen din fra listen. Denne delen inneholder også noen avanserte alternativer som du kan bruke til å lage målrettede varsler, basert på faktorer som appversjon, enhetens sted og siste gang brukeren engasjerte seg i appen din. Vi bruker ikke noen av disse alternativene i testvarslingen vår, men hvis du vil se hva som er tilgjengelig, velger du "og ..." og utforsk den påfølgende rullegardinmenyen.

  • Når du er ferdig med å redigere denne delen, klikker du på "Neste".
  • Forutsatt at du vil sende dette umiddelbart, åpner du rullegardinmenyen "Send til kvalifiserte brukere" og velger "Nå".
  • Nederst til høyre på skjermen klikker du på "Publiser."
  • Sjekk all informasjonen i den påfølgende popup, og hvis du er fornøyd med å fortsette, velg "Publiser".

Etter noen få øyeblikk skal alle klientenhetene du målretter motta dette varselet i systemstatusfeltet.

Det meste av tiden vil FCM-varsler bli levert umiddelbart, men av og til kan det ta noen minutter før en ankommer, så ikke gå i panikk hvis varselet ditt er forsinket.

Sette noen mål: Varsling om konverteringshendelser

Når du oppretter en varsling, har du vanligvis et mål for deg - enten det er å føre brukerne tilbake til appen din, overbevise dem om å sprute ut i et kjøp i appen, eller bare åpne varslingen.

Du kan tilordne et mål til varslingen din ved å bruke varslingskomponisten og deretter spore resultatens varsel i FCM-rapporteringspanelet.

For å sette et mål, klikk for å utvide Navigasjonskomponistens "Konverteringshendelser" -del, åpne deretter det medfølgende rullegardinmenyen og velg blant de tilgjengelige konverteringshendelsene.

Var varslingen din en suksess?

Etter å ha sendt et varsel, kan du analysere ytelsen i FCM-rapporteringspanelet, som skal lastes automatisk hver gang du sender et nytt, eller du kan få tilgang til dashbordet direkte.

Selv om du ikke satte noen eksplisitte konverteringsmål, kan du fremdeles måle om brukere opptrer på varslene dine, ved å sammenligne antall leverte s, med antall åpnet.

Du kan også velge hvilken som helst i denne listen, for å se sendings-, åpnings- og konverteringsdataene som en graf. Hvis du setter noen konverteringsmål, er det også her du finner statistikken knyttet til disse målene.

Hva om appen min er i forgrunnen?

FCM-varsler oppfører seg annerledes, avhengig av tilstanden til klientsøknaden.

Som standard vil appen din ikke vise noen FCM-er den mottar mens den er i forgrunnen, så når du sender en er det ingen garanti for at brukerne dine faktisk vil se det.

For å handle på appene dine mottar mens den er i forgrunnen, må du utvide FirebaseMessagingService, overstyre metoden OnReceived og deretter hente innholdet ved å bruke enten getNotification eller getData, avhengig av om du jobber med data eller varsler, eller begge deler.

Lag en ny Java-klasse med navnet “MyFirebaseMessagingService” og legg deretter til følgende:

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

Du må også lage et varslingsobjekt. Dette er din sjanse til å tilpasse varselet ditt, for eksempel å velge lyden som skal spilles hver gang brukeren mottar dette varselet, eller bruker et tilpasset varslingsikon. Du må også hente innholdet fra dataene eller varslingen, for eksempel:

NotificationCompat.Builder noticeBuilder = new 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 (true); NotificationManagervarselManager = (NotificationManager) getSystemService (Context.NOTIFICATION_SERVICE); anmeldelseManager.notify (0 ,varselBuilder.build ()); }}

Når du har opprettet tjenesten din, ikke glem å legge den til i manifestet:

Hver gang appen din mottar en FCM mens den er i forgrunnen, vil den bli levert til onReceived () -behandleren, og appen din vil deretter utføre handlingen som er definert av deg, for eksempel legge ut varselet eller oppdatere appens innhold.

Mer engasjerende varsler: Målretting mot brukerne dine

Frem til nå har vi sendt den samme varslingen til hele brukerbasen vår, men varslene er langt mer engasjerende når de er målrettet mot bestemte brukere.

Du kan bruke varslingskomponisten til å sende forskjellige varsler, til forskjellige deler av brukerbasen. Gå over til varslingskomponisten og lag varselet ditt som normalt, men i delen "Mål" klikker du på "og". Dette gir deg tilgang til et nytt rullegardin som inneholder følgende alternativer:

  • Versjon. Dette lar deg målrette mot eller ekskludere enheter som kjører spesifikke versjoner av applikasjonen din. Du kan for eksempel sende varsler til folk som kjører gratisversjonen, og oppfordre dem til å oppgradere til appens Premium-versjon.
  • Språk. Du kan bruke denne innstillingen til å målrette mot eller ekskludere de forskjellige språkene og stedene som applikasjonen din støtter, for eksempel lage varsler som er skreddersydd for forskjellige tidssoner eller språk.
  • Brukerpublikum (er). Dette lar deg målrette mot eller ekskludere forskjellige deler av målgruppen din. Du kan for eksempel bruke denne innstillingen for å friste folk som har hatt en historie med å kjøpe apper i appen, ved å tilby dem rabatt eller trekke oppmerksomheten til alle de fantastiske nye app-produktene du nettopp har gitt ut.
  • Brukeregenskap. Hvis du har konfigurert Firebase Analytics, har du tilgang til en rekke informasjon om målgruppen din, via brukeregenskaper. Du kan bruke disse egenskapene i kombinasjon med FCM, til å sende målrettede varsler til veldig spesifikke deler av brukerbasen din, for eksempel personer i alderen 25-34 år som er interessert i sport.
  • Forutsigelse. Hvis du har satt opp Firebase Predictions, kan du målrette brukere ut fra hvor sannsynlig de vil delta i en bestemt oppførsel i løpet av de neste 7 dagene. Hvis for eksempel spådommer advarer om at noen sannsynligvis vil koble seg ut av mobilspillet ditt, kan du bruke FCM til å invitere dem til å delta i en ny oppdrag, eller for å sende dem litt valuta i spillet.
  • Siste appengasjement. Hvis en bruker ikke har lansert appen din på en stund, kan du bruke denne innstillingen til å sende dem noen varsler, bare for å minne dem om alt det flotte innholdet appen din har å tilby.
  • Først åpen. Dette lar deg sende varsler basert på første gang brukeren åpnet appen din, for eksempel kan du hjelpe nye brukere med å komme seg opp med å sende dem varsler som inneholder nyttige tips og råd.

Målretting mot en enkelt enhet med registreringstegn

Vi har allerede sett hvordan du kan sende målrettede varsler basert på faktorer som brukerens alder, interesser og siste gang de engasjerte seg i appen din, men du kan bli skuls mer spesifikt. I denne siste delen vil jeg vise deg hvordan du kan sende en FCM-varsel til en enkelt enhet.

Når brukeren lanserer appen din for første gang, genererer FCM SDK et registreringsnummer for den klientapp-forekomsten. Du kan bruke FirebaseInstanceId.getInstance (). GetInstanceId () til å fange dette registreringsmerket, og deretter sende et varsel til dette spesifikke tokenet.

Legg merke til at i et ekte prosjekt vil du vanligvis fange et symbol ved å sende det til appserveren din og lagre det ved å bruke den foretrukne metoden, men for å hjelpe med å holde ting rett frem, vil jeg ganske enkelt skrive ut dette tokenet til Android Studio's Logcat.

Her er min fullførte 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 utvider AppCompatActivity {privat statisk final String TAG = "MainActivity"; @Override beskyttet tomrom onCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceState); setContentView (R.layout.activity_main); FirebaseInstanceId.getInstance (). GetInstanceId () .addOnCompleteListener (ny OnCompleteListener() {@Overr offentlig tomrom onComplete (@NonNull oppgave oppgave) {if (! task.isSuksess ()) {// To do // return; } // Få forekomst-ID-token // String token = task.getResult (). GetToken (); Streng msg = getString (R.string.fcm_token, token); Log.d (TAG, msg); }}); }}

Åpne strings.xml-filen og opprett streng-ressursen "fcm_token" som vi viser til i MainActivity:

FCM-token:% s

Du kan nå hente enhetens unike token:

  • Installer prosjektet på den tilkoblede Android-enheten eller AVD.
  • Åpne Android Studio's Logcat ved å velge Logcat-fanen (der markøren er plassert i følgende skjermbilde).

  • Enhetens symbol blir skrevet ut til "Feilsøking" -delen i Logcat, så åpne rullegardinmenyen og velg "Feilsøking."

Avhengig av mengden informasjon i Logcat, kan det være vanskelig å se linjen du leter etter. Hvis du sliter, kan du søke etter ordet "token" eller prøve å lukke og deretter starte appen på nytt.

Når du har hentet tokenet, kan du bruke det til å sende en pushvarsling til denne spesielle enheten:

  • Gå over til Firebase Console og velg prosjektet ditt fra rullegardinmenyen, hvis du ikke allerede har gjort det.
  • Velg “Cloud Messaging” fra venstre meny.
  • Klikk på "Ny varsel" -knappen.
  • Angi tittel og tekst som normalt, men klikk deretter på "Test på enheten."

  • Kopier / lim inn tokenet ditt i feltet "Legg til en forekomst ...", og klikk deretter på det lille blå "+" -ikonet som vises.
  • Merk av for tokenens tilhørende avkrysningsrute.

  • Klikk "Test."

Denne varslingen vises nå bare på den målrettede klientenheten.

Innpakking

I denne artikkelen viste jeg deg hvordan du sender Android push-varsler, bruker Firebase Cloud Messaging, og hvordan du oppretter varsler som målretter forskjellige deler av brukerbasen din.

Skal du bruke FCM i dine egne Android-prosjekter? Gi oss beskjed i kommentarene nedenfor!

ADB (Android Debug Bridge) -funkjonalitet er en av de viktigte funkjonene for utviklere og entuiater, og lar deg kommuniere med Android-telefonen din via PC....

Google-værappen er uten tvil den bete. Den har et rent deign, vier all viktig info inkludert vind-, regn- og oloppgang / olnedgangtider, og er grati. Men hvordan kan du få den på telefo...

Interessant