Mens du bygger appen din for å gi en god opplevelse, er utrolig viktig, er det enda viktigere å engasjere nye og eksisterende brukere for den langsiktige suksessen til appen din. I denne opplæringen lærer du hvordan du bruker Firebase for å aktivere Google Cloud Messaging og sende varsler til appen din, samt hvordan du tillater brukere å dele appen din med sine kontakter som bruker enten Android- eller iOS-enheter.
Denne opplæringen vil anta at du allerede har opprettet et prosjekt for Firebase og har tilgang til Firebase Console. For å lære hvordan du kommer i gang med Firebase for Android, sjekk ut en av våre andre opplæringsprogrammer:
Meldinger er en av de enkleste måtene å la brukerne få vite om nye hendelser eller funksjoner i appen din, og får dem til å åpne appen på nytt. Ved å bruke Firebase kan du sende varsler til alle brukere eller til segmenter av brukerbasen din, slik at du kan tilpasse hva brukerne mottar og pikse interessen sin.
Vise varsler når appen din er i bakgrunnen, er utrolig enkelt, siden den håndteres automatisk av Firebase Messaging-biblioteket. I din søknad må du inkludere biblioteket med følgende linje i avhengig
node av din build.gradle fil, og installer deretter appen på en enhet.
kompilere 'com.google.firebase: firebase-messaging: 9.8.0'
Deretter må du gå inn i Firebase-konsollen din og velge Varsler delen i det venstre navigasjonspanelet.
Når du er i riktig seksjon, bør du se en skjerm som ber deg om send din første melding.
Når du har klikket på den blå knappen, blir du tatt til et skjema som lar deg legge til innhold i meldinger og velge hvilke grupper som skal motta meldingen. Ved hjelp av dette skjemaet kan du angi boolean forhold som en enhet eller bruker må møte - for eksempel geografisk plassering eller annen samlet data - for å motta varselet ditt.
Når du har sendt meldingen, bør det vises en melding på brukerens enheter.
En ting å legge merke til er at meldinger ikke vises for en bruker hvis de allerede er i appen din. For å motta varsler i denne situasjonen må du implementere en Service
som strekker seg FirebaseMessagingService
.
offentlig klasse NotificationService utvider FirebaseMessagingService @Override public void onMessageReceived (RemoteMessage remoteMessage) super.onMessageReceived (remoteMessage);
Du må også inkludere dette Service
i din AndroidManifest.xml fil.
Nå som du har det generelle rammeverket sammen, er det på tide å kjøre ut onMessageReceived
i din FirebaseMessagingService
klasse. Hovedformålet med denne metoden er å ta dataene sendt ned med RemoteMessage
objekt og opprett a Melding
basert på hva du mottar.
Det er mye informasjon som kan sendes ned med RemoteMessage
. Imidlertid er de fleste av alternativene bare tilgjengelige hvis du bruker Firebase back-end API, i stedet for konsollen. Fra Firebase-konsollen kan du angi en tittel, en meldingskode og tilpassede nøkkel / verdipar.
Logger alle tilgjengelige data fra a RemoteMessage
kan gjøres slik:
for (Map.Entryoppføring: 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", "message id:" + remoteMessage.getMessageId ()); Log.e ("TutsPlus", "meldingstype ::" + remoteMessage.getMessageType ()); Log.e ("TutsPlus", "til:" + remoteMessage.getTo ()); Log.e ("TutsPlus", "send tid:" + 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", "click action:" + remoteMessage.getNotification (). GetClickAction ()); Log.e ("TutsPlus", "color:" + remoteMessage.getNotification (). GetColor ()); Log.e ("TutsPlus", "icon:" + remoteMessage.getNotification (). GetIcon ());
Som i sin tur vil produsere følgende loggmeldinger.
E / TutsPlus: Nøkkel = custom_data_key, Value = some_value E / TutsPlus: collapsekey: com.tutsplus.tutsplusfirebasenotification E / TutsPlus: fra: 1044252370931 E / TutsPlus: melding id: 0: 1478812920837872% ba5f8433ba5f8433 E / TutsPlus: meldingstype :: null E / TutsPlus: Tittel: Til: null E / TutsPlus: sendetid: 1478812919847 E / TutsPlus: ttl: 0 E / TutsPlus: tittel: Egendefinert tittel E / TutsPlus: body: Message Text E / TutsPlus: klikk handling: null E / TutsPlus: farge: null E / TutsPlus: ikon: null
Når du vet hvilken informasjon som er tilgjengelig, og hvordan du vil håndtere den, kan du opprette og vise et varsel til brukerne.
NotificationCompat.Builder builder = ny NotificationCompat.Builder (dette); builder.setContentTitle (remoteMessage.getNotification () getTitle ().); builder.setSmallIcon (R.mipmap.ic_launcher); builder.setContentText (remoteMessage.getNotification () getBody ().); NotificationManagerCompat.from (this) .notify (0, builder.build ());
Og det er det! Du bør nå kunne sette opp en Android-app for å sende og motta varsler fra Firebase-konsollen.
Å få nye brukere på appen din kan være en skremmende utfordring, men ord i munn er en fin måte å få ballen til å rulle. Ved å bruke Firebase kan du legge til App Invites-widgeten i programmet, som lar brukerne dele appen din via e-post eller SMS til andre Android- eller iOS-brukere.
Før du kan begynne å bruke denne funksjonen, må du importere pakken til prosjektet ved å legge til følgende linje i avhengig
node av din build.gradle fil.
kompilere 'com.google.firebase: firebase-invitasjoner: 9.8.0'
Når du har synkronisert prosjektet ditt, vil du kunne opprette en ny Intent
bruker AppInviteInvitation.IntentBuilder
klassen, som starter en skjerm som lar brukerne velge kontakter for å invitere til appen. Denne byggeren gir forskjellige alternativer for å tilpasse app-invitasjonsskjermen:
setMessage
: Dette vil angi meldingen som brukere ser og kan sende til kontakter over tekstmelding eller e-post. Dette kan ikke være lenger enn 100 tegn.setCustomImage
: Ved hjelp av denne metoden kan du gi en URI til et egendefinert bilde som vil vises på invitasjonsskjermbildet og invitere e-post.setCallToActionText
: Denne metoden setter teksten for installasjonsknappen i e-postmeldinger. Dette har en grense på 32 tegn.setDeepLink
: Lar deg gi metadata for invitasjonen din, som kan mottas ved installasjon for å ta bestemte handlinger for den nylig inviterte brukeren.setEmailHtmlContent
: Lar deg overstyre setMessage
, setCustomImage
, og setCallToActionText
å opprette en egendefinert HTML formatert e-post for å sende til potensielle nye brukere.setEmailSubject
: Kreves hvis setEmailHtmlContent
benyttes. Som navnet tilsier, vil dette angi emnet for egendefinert e-post.setOtherPlatformsTargetApplication
: En av de mer interessante alternativene, denne metoden vil tillate deg å knytte Firebase-klientens app-ID til en iOS-versjon av appen din, slik at iOS-brukere kan installere den riktige versjonen hvis den deles av en Android-bruker.Når du har opprettet din Intent
, du kan starte den med startActivityForResult
å bli varslet når brukeren har returnert fra å invitere andre.
Intent Intent = ny AppInviteInvitation.IntentBuilder (getString (R.string.invitation_title)) .setMessage (getString (R.string.invitation_message)) .setCustomImage (Uri.parse (getString (R.string.invitation_custom_image))) .setCallToActionText (getString (R.string.invitation_cta)) .setDeepLink (Uri.parse ("/ link")) .setOtherPlatformsTargetApplication (AppInviteInvitation.IntentBuilder.PlatformMode.PROJECT_PLATFORM_IOS, getString (R.string.ios_app_client_id)) .build ();
Nå som du kan invitere andre brukere til appen din, la oss ta et øyeblikk for å fokusere på dype koblingsalternativer. Når du lager din Intent
, Du kan legge til en URI
som en dyp link. Når en bruker mottar invitasjonen din på Android, kan du bruke Google Play Services og AppInvite API til å fange opp dette URI
og utfør en tilpasset handling, for eksempel å presentere en velkomstskjerm, for den nye brukeren.
boolean autodeeplink = true; mGoogleApiClient = ny GoogleApiClient.Builder (dette) .addApi (AppInvite.API) .enableAutoManage (dette, dette) .build (); AppInvite.AppInviteApi.getInvitation (mGoogleApiClient, dette, autodeeplink) .setResultCallback (nytt resultatCallback() @Override public void onResult (AppInviteInvitationResult resultat) if (result.getStatus (). IsSuccess ()) // Få intentinformasjon Intent intent = result.getInvitationIntent (); String deepLink = AppInviteReferral.getDeepLink (hensikt); String invitationId = AppInviteReferral.getInvitationId (hensikt); );
Du vil legge merke til at vi opprettet en boolean
oppkalt autodeeplink
. Når dette er satt til ekte
, Android-systemet håndterer automatisk den mottatte URI
gjennom filtre i din AndroidManifest.xml fil. Hvis den er satt til falsk
, Du kan bruke AppInvite API til å trekke ut informasjon fra invitasjonen og utføre tilpasset handling.
I denne opplæringen har du lært hvordan du implementerer varsler fra Firebase i Android-appene dine, og hvordan du lar brukerne enkelt dele appen din med sine kontakter. Å forstå hva som er tilgjengelig i Firebase og hvordan du implementerer de generelle funksjonene, vil gå langt for å hjelpe deg med å raskt bygge apper som folk liker å bruke..
For å lære mer om Firebase eller Android-utvikling generelt, sjekk ut noen av våre andre kurs og opplæringsprogrammer her på Envato Tuts+.