Firebase pentru Android Notificări și invitații la aplicații

Î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:

  • Începeți cu Firebase pentru Android

    Crearea unui server back-end necesită un set de competențe pe care majoritatea dezvoltatorilor independenți de aplicații le lipsește. Din fericire, există Firebase, o platformă bazată pe cloud care ...
    Ashraff Hathibelagal
    Android SDK
  • Cum se creează o aplicație de chat Android utilizând Firebase

    Cu Firebase, crearea de aplicații sociale în timp real este o plimbare în parc. Și cel mai bun lucru este că nu trebuie să scrieți o singură linie de ...
    Ashraff Hathibelagal
    Android SDK

Firebase Notifications

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

Notificări în timp ce aplicația dvs. este în fundal

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țenodul 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.

Notificări în prim plan

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.Entry intrare: 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.

App Invites

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.

Lansarea mesajului de invitare

Î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țenodul 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 setMessagesetCustomImage, ș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 ();

Primirea invitaților

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

Concluzie

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

  • Începeți să creați o aplicație de design material

    În acest videoclip de la cursul meu privind construirea unei aplicații de design material, veți învăța cum să creați interfața de utilizator a unei aplicații de design material. Veți învăța cum să ...
    Ashraff Hathibelagal
    Android
  • Android de la zero: Raportarea Crash Firebase

    Blocajele de aplicații nu ar trebui să fie niciodată ignorate, deoarece acestea tind să conducă utilizatorii departe. Folosind una din multele soluții de raportare a accidentelor disponibile astăzi, puteți ...
    Ashraff Hathibelagal
    Android SDK
  • Firebase pentru Android: stocare de fișiere

    În timpul conferinței Google I / O din 2016, Firebase a fost reintrodusă în comunitatea de dezvoltatori ca o resursă majoră pentru furnizarea unui suport rapid de back-end pentru web ...
    Paul Trebilcox-Ruiz
    Android SDK
  • Migrați un App Android la Designul Materialului

    Cu ani în urmă, când Android era încă un sistem de operare mobil, a fost destul de notoriu pentru interfața sa de utilizator urâtă. Deoarece nu exista nici un design ...
    Ashraff Hathibelagal
    Android
Cod