În timp ce construiți aplicația pentru a oferi o experiență extraordinară este incredibil de importantă, implicarea cu utilizatorii noi și existenți este chiar mai importantă pentru succesul pe termen lung al aplicației dvs. În acest tutorial veți afla cum să utilizați Firebase pentru a activa Google Cloud Messaging și pentru a trimite notificări aplicației dvs., precum și cum să permiteți utilizatorilor să vă împărtășească aplicația cu persoanele de contact care utilizează dispozitive Android sau iOS.
Acest tutorial va presupune că ați configurat deja un proiect pentru Firebase și aveți acces la Consola Firebase. Pentru a afla cum să începeți cu Firebase pentru Android, consultați unul dintre celelalte tutoriale ale noastre:
Notificările sunt una dintre cele mai ușoare modalități de a le permite utilizatorilor să afle despre evenimentele sau funcțiile noi din aplicația dvs. și să le solicite din nou să deschidă aplicația. Folosind Firebase, puteți trimite notificări tuturor utilizatorilor sau segmentelor bazei dvs. de utilizatori, permițându-vă să personalizați ceea ce primesc utilizatorii dvs..
Afișarea notificărilor atunci când aplicația este în fundal este incredibil de ușoară, deoarece este gestionată automat de biblioteca de mesaje Firebase. În aplicația dvs., va trebui să includeți biblioteca cu următoarea linie în dependențe
nodul tău build.gradle fișier, apoi instalați aplicația pe un dispozitiv.
compile 'com.google.firebase: firebase-messaging: 9.8.0'
Apoi, va trebui să intrați în consolă Firebase și să selectați notificări secțiune din panoul de navigare din stânga.
După ce vă aflați în secțiunea corectă, ar trebui să vedeți un ecran care vă cere să faceți acest lucru trimite primul mesaj.
Odată ce ați făcut clic pe butonul albastru, veți fi dus la un formular care vă va permite să adăugați conținut la mesaje și să selectați grupurile care ar trebui să primească mesajul. Utilizând acest formular, puteți specifica condițiile booleene pe care trebuie să le îndeplinească un dispozitiv sau un utilizator - cum ar fi locația geografică sau orice alte date colectate - pentru a primi notificarea.
După ce ați trimis mesajul, ar trebui să apară o notificare pe dispozitivele utilizatorului.
Un lucru de observat este că notificările nu vor apărea pentru un utilizator dacă sunt deja în aplicația dvs. Pentru a primi notificări în această situație, va trebui să implementați o Serviciu
care se extinde FirebaseMessagingService
.
clasa publica NotificationService extinde FirebaseMessagingService @Override public void peMessageReceived (RemoteMessage remoteMessage) super.onMessageReceived (remoteMessage);
Va trebui să includeți și acest lucru Serviciu
în tine AndroidManifest.xml fişier.
Acum că aveți cadrul general împreună, este timpul să vă dezbrăcați onMessageReceived
în tine FirebaseMessagingService
clasă. Scopul principal al acestei metode este de a lua datele trimise în jos cu RemoteMessage
obiect și a crea un Notificare
bazat pe ceea ce primiți.
Există o mulțime de informații care pot fi transmise cu RemoteMessage
. Cu toate acestea, majoritatea opțiunilor sunt disponibile numai dacă utilizați API-ul back-end Firebase, mai degrabă decât consola. Din consola Firebase, puteți seta un titlu, un corp de mesaj și perechi personalizate cheie / valoare.
Înregistrarea tuturor datelor disponibile dintr-un RemoteMessage
se poate face așa:
pentru (Map.Entryintrare: remoteMessage.getData () entrySet ()) Log.e ("Test", "Key =" + entry.getKey () + ", Valoare =" + entry.getValue ()); Log.e ("TutsPlus", "collapsekey:" + remoteMessage.getCollapseKey ()); Log.e ("TutsPlus", "de la:" + remoteMessage.getFrom ()); Log.e ("TutsPlus", "id de mesaj:" + remoteMessage.getMessageId ()); Log.e ("TutsPlus", "tipul mesajului ::" + remoteMessage.getMessageType ()); Log.e ("TutsPlus", "la:" + remoteMessage.getTo ()); Log.e ("TutsPlus", "timp de trimitere:" + remoteMessage.getSentTime ()); Log.e ("TutsPlus", "ttl:" + remoteMessage.getTtl ()); Log.e ("TutsPlus", "titlu:" + remoteMessage.getNotification (). GetTitle ()); Log.e ("TutsPlus", "corp:" + remoteMessage.getNotification (). GetBody ()); Log.e ("TutsPlus", "acțiune clic:" + remoteMessage.getNotification (). GetClickAction ()); Log.e ("TutsPlus", "culoare:" + remoteMessage.getNotification (). GetColor ()); Log.e ("TutsPlus", "pictogramă:" + remoteMessage.getNotification (). GetIcon ());
Care, la rândul său, va produce următoarele mesaje de jurnal.
E / TutsPlus: cheie = cheie_data particularizata, valoare = some_value E / TutsPlus: collapsekey: com.tutsplus.tutsplusfirebasenotification E / TutsPlus: de la: 1044252370931 E / TutsPlus: id mesaj: 0:1478812920837872% ba5f8433ba5f8433 E / TutsPlus: E / TutsPlus: la: null E / TutsPlus: timp de trimitere: 1478812919847 E / TutsPlus: ttl: 0 E / TutsPlus: culoare: null E / TutsPlus: pictogramă: null
După ce știți ce informații sunt disponibile și cum doriți să le gestionați, puteți crea și afișa o notificare pentru utilizatorii dvs..
NotificareCompat.Builder builder = Notificare nouăCompat.Builder (aceasta); builder.setContentTitle (remoteMessage.getNotification () getTitle ().); builder.setSmallIcon (R.mipmap.ic_launcher); builder.setContentText (remoteMessage.getNotification () getBody ().); NotificationManagerCompat.from (acest) .notify (0, builder.build ());
Si asta e! Acum ar trebui să puteți configura o aplicație Android pentru a trimite și a primi notificări de la consola Firebase.
Obținerea de noi utilizatori în aplicația dvs. poate fi o provocare descurajantă, dar cuvântul din gură este o modalitate excelentă de a obține rostogolirea mingii. Folosind Firebase, puteți adăuga widgetul App Invites la aplicația dvs., ceea ce va permite utilizatorilor dvs. să vă împărtășească aplicația prin e-mail sau SMS către alți utilizatori Android sau iOS.
Înainte de a putea începe să utilizați această funcție, va trebui să importați pachetul în proiect prin adăugarea următoarei linii la dependențe
nodul tău build.gradle fişier.
compile 'com.google.firebase: firebase-invites: 9.8.0'
După ce ați sincronizat proiectul, veți putea să creați un nou scop
folosind AppInviteInvitation.IntentBuilder
clasa, care va lansa un ecran care permite utilizatorilor să selecteze contacte pentru a invita la aplicație. Acest constructor oferă diferite opțiuni pentru personalizarea ecranului invitație la aplicație:
setMessage
: Acesta va seta mesajul pe care utilizatorii îl văd și îl poate trimite persoanelor de contact prin mesaj text sau e-mail. Aceasta nu poate fi mai lungă de 100 de caractere.setCustomImage
: Utilizând această metodă, puteți furniza un URI unei imagini personalizate care va apărea în ecranul de invitație și va invita la e-mail.setCallToActionText
: Această metodă stabilește textul pentru butonul de instalare în e-mailuri. Aceasta are o limită de 32 de caractere.setDeepLink
: Vă permite să furnizați metadate pentru invitația dvs., care pot fi primite la instalare pentru a lua anumite acțiuni pentru noul dvs. utilizator invitat.setEmailHtmlContent
: Vă permite să ignorați setMessage
, setCustomImage
, și setCallToActionText
pentru a crea un e-mail formatat personalizat HTML pentru a trimite utilizatorilor potențiali noi.setEmailSubject
: Necesar dacă setEmailHtmlContent
este folosit. După cum sugerează și numele, aceasta va seta subiectul e-mailului personalizat.setOtherPlatformsTargetApplication
: Una dintre opțiunile mai interesante, această metodă vă va permite să asociați ID-ul aplicației client Firebase pentru o versiune iOS a aplicației dvs., permițând utilizatorilor iOS să instaleze versiunea corectă dacă este distribuită de un utilizator Android.Odată ce v-ați creat scop
, îl puteți lansa startActivityForResult
pentru a fi notificat atunci când utilizatorul sa întors de la invitarea altora.
Intenție intent = nou 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 ();
Acum, că puteți invita alți utilizatori în aplicația dvs., să facem un moment pentru a vă concentra asupra opțiunilor de legare profundă. Când vă creați scop
, poți adăuga o URI
ca o legătură profundă. Când un utilizator primește invitația dvs. pe Android, puteți utiliza serviciile Google Play și API AppInvite pentru a intercepta acest lucru URI
și efectuați o acțiune personalizată, cum ar fi prezentarea unui ecran de întâmpinare, pentru noul dvs. utilizator.
boolean autodeeplink = adevărat; mGoogleApiClient = nou GoogleApiClient.Builder (acest) .addApi (AppInvite.API) .enableAutoManage (acest, acest) .build (); AppInvite.AppInviteApi.getInvitation (mGoogleApiClient, aceasta, autodeeplink) .setResultCallback (noul ResultCallback() @Override public void onResult (rezultatul AppInviteInvitationResult) if (result.getStatus () isSuccess ()) // Obțineți informații de intenție Intent intent = result.getInvitationIntent (); String deepLink = AppInviteReferral.getDeepLink (intenție); String invitatieId = AppInviteReferral.getInvitationId (intent); );
Veți observa că am creat o boolean
numit autodeeplink
. Când este setat la Adevărat
, sistemul Android va gestiona automat recepția primită URI
prin intermediul filtrelor din AndroidManifest.xml fişier. Dacă este setat la fals
, puteți utiliza API AppInvite pentru a extrage informații din invitație și pentru a efectua acțiunea personalizată.
În acest tutorial, ați învățat cum să implementați notificări de la Firebase în aplicațiile Android și cum să permiteți utilizatorilor să împărtășească cu ușurință aplicația dvs. cu persoanele de contact. Înțelegerea a ceea ce este disponibil în Firebase și implementarea caracteristicilor generale vor contribui mult la crearea rapidă a aplicațiilor pe care le utilizează utilizatorii.
Pentru a afla mai multe despre Firebase sau despre dezvoltarea Androidului în general, verificați câteva dintre celelalte cursuri și tutoriale de aici, pe Envato Tuts+.