Firebase for Android Varsler og app invitasjoner

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:

  • Kom i gang med Firebase for Android

    Opprette en back-end-server krever et ferdighetssett som de fleste uavhengige apputviklere mangler. Heldigvis er det Firebase, en skybasert plattform som ...
    Ashraff Hathibelagal
    Android SDK
  • Slik lager du en Android Chat App ved hjelp av Firebase

    Med Firebase er å skape sosialapplikasjoner i sanntid en tur i parken. Og det beste med det er at du ikke trenger å skrive en enkelt linje av ...
    Ashraff Hathibelagal
    Android SDK

Brannbasevarsler

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.

Varsler mens appen din er i bakgrunnen

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 avhengignode 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.

Varsler i forgrunnen

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.Entry oppfø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.

App inviterer

Å 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.

Starte invitasjonsprøven

Før du kan begynne å bruke denne funksjonen, må du importere pakken til prosjektet ved å legge til følgende linje i avhengignode 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 setMessagesetCustomImage, 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 ();

Motta invitasjoner

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.

Konklusjon

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+.

  • Kom i gang Bygg et materialdesignapp

    I denne videoen fra kurset mitt om å bygge en materiell design-app, lærer du hvordan du lager brukergrensesnittet til en materiell design-app. Du lærer å ...
    Ashraff Hathibelagal
    Android
  • Android fra scratch: Firebase Crash Reporting

    Appkrasj bør aldri bli ignorert fordi de pleier å kjøre brukere unna. Ved å bruke en av de mange krasjrapporteringsløsninger som er tilgjengelige i dag, kan du ...
    Ashraff Hathibelagal
    Android SDK
  • Firebase for Android: File Storage

    I løpet av 2016 I / O-konferansen i Google ble Firebase gjeninnført til utviklerfellesskapet som en viktig ressurs for å gi rask back-end-støtte for web ...
    Paul Trebilcox-Ruiz
    Android SDK
  • Overfør en Android-app til Material Design

    For mange år siden, da Android fortsatt var et spirende mobiloperativsystem, var det ganske beryktet for sitt gale brukergrensesnitt. Fordi det ikke var noe design ...
    Ashraff Hathibelagal
    Android