Trimiterea notificărilor push Android cu Firebase Cloud Messaging

Autor: Louise Ward
Data Creației: 4 Februarie 2021
Data Actualizării: 1 Iulie 2024
Anonim
Trimiterea notificărilor push Android cu Firebase Cloud Messaging - Aplicaţii
Trimiterea notificărilor push Android cu Firebase Cloud Messaging - Aplicaţii

Conţinut


Deși nu depășește scopul acestui tutorial, puteți utiliza FCM și pentru notificări în amonte, unde FCM primește o aplicație client sau pentru a notifica aplicația dvs. când există date noi disponibile pentru descărcare. În acest fel, vă puteți asigura că comunicarea între serverul dvs. de aplicație și aplicația client are loc numai atunci când este necesar, ceea ce este mult mai eficient decât aplicația client care contactează serverul la intervale regulate, în condițiile în care pot fi disponibile date noi.

Deoarece FCM face parte din Firebase, se joacă de asemenea frumos cu alte servicii Firebase. După ce ați stăpânit elementele esențiale FCM, este posibil să doriți să utilizați Testul A / B pentru a identifica ce notificări sunt cele mai eficiente sau utilizați Firebase Predictions pentru a aplica învățarea automată puternică la toate datele analitice generate din diferitele campanii FCM.

FCM suportă două tipuri de s:


  • Notificare s. Aplicația client se va comporta diferit în funcție de faptul dacă este în fundal sau în prim plan când primește FCM. Dacă aplicația dvs. este în fundal, atunci SDK Firebase va prelucra automat și o va afișa ca o notificare în tava de sistem a dispozitivului. Deoarece sistemul Android creează notificarea pentru dvs., aceasta este una dintre cele mai ușoare metode de a trimite notificări push către utilizatorii dvs. Dacă aplicația dvs. primește un FCM în timp ce este în prim plan, atunci sistemul nu va gestionați automat această notificare, lăsându-vă să procesați apelul de apel în recepție () al aplicației. Vom explora peReceptate () mai târziu în acest tutorial, dar deocamdată trebuie să știți că dacă aplicația dvs. primește un timp este în prim plan, atunci implicit aceasta nu va fi afișată utilizatorului.
  • Date. Spre deosebire de notificarea, puteți utiliza date pentru a trimite elemente de date personalizate către aplicația client. Cu toate acestea, FCM plasează o limită de 4KB pe aceste date, astfel încât dacă sarcina dvs. utilă depășește 4KB, va trebui să obțineți datele suplimentare folosind WorkManager sau API-ul JobScheduler.

În acest tutorial, ne vom concentra asupra notificărilor.


Cum rămâne cu Google Cloud Messaging?

Dacă folosești serverul și API-urile clientului Google Cloud Messaging (GCM), atunci există câteva vești proaste: acest serviciu a fost deja depășit și Google intenționează să oprească „majoritatea” serviciilor GCM în aprilie 2019. Dacă totuși folosind GCM, atunci ar trebui să începeți să migrați proiectele către FCM acum și trebuie să vă fi finalizat migrarea până în aprilie 2019.

Adăugarea Firebase la proiectul dvs. Android

Să vedem cât de ușor este să adăugați asistență FCM de bază în aplicația dvs., apoi să o utilizați pentru a trimite notificări push utilizatorilor.

Deoarece FCM este un serviciu Firebase, va trebui să adăugați Firebase în aplicația dvs.:

  • Îndreptați-vă spre Consola Firebase.
  • Selectați „Adăugați proiect” și dați un nume proiectului dvs.
  • Citiți termenii și condițiile. Dacă sunteți încântat să continuați, atunci selectați „Accept…” urmată de „Creare proiect”.
  • Selectați „Adăugați Firebase în aplicația dvs. Android”.
  • Introduceți numele pachetului proiectului dvs., apoi faceți clic pe „Înregistrați aplicația”.
  • Selectați „Descărcați google-services.json.”
  • În Android Studio, trageți și plasați fișierul google-services.json în directorul „aplicației” al proiectului.
  • Deschideți fișierul build.gradle la nivel de proiect și adăugați următoarele:

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

  • Deschideți fișierul build.gradle la nivel de aplicație și adăugați pluginul serviciilor Google, plus dependențele pentru Firebase Core și FCM:

// Adăugați pluginul Google Services // aplica plugin: com.google.gms.google-services ... ... ... dependențe {fișier de implementareTree (dir: libs, include:) // Adăugați Firebase Core // implementarea com.google.firebase: firebase-core: 16.0.1 // Adăugare FCM // implementare com.google.firebase: firebase-messaging: 17.3.4

  • Când vi se solicită, sincronizați-vă modificările.
  • În continuare, trebuie să anunțați Firebase Console că ați adăugat Firebase cu succes proiectului. Instalați aplicația fie pe un smartphone sau tabletă Android fizic, fie pe un dispozitiv virtual Android (AVD).
  • Înapoi în Consola Firebase, selectați „Rulați aplicația pentru a verifica instalarea.”
  • După ce Firebase a detectat aplicația, veți vedea un „Felicitări”. Selectați „Continuați la consolă”.

Trimiterea primei notificări push cu Firebase

Si asta e! Acum puteți trimite o notificare push către utilizatorii dvs., iar această notificare va apărea în tava de sistem a dispozitivului (deocamdată să presupunem că aplicația dvs. nu este în prim plan în momentul livrării).

Puteți crea notificări FCM folosind Notifications Composer, care este disponibil prin Firebase Console:

  • Asigurați-vă că aplicația dvs. este instalată și funcționează în fundal și că dispozitivul dvs. are o conexiune la Internet activă.
  • În Firebase Console, selectați „Cloud Messaging” din meniul din stânga.

  • Selectați „Trimiteți primul dvs.”.
  • Dă-ți un titlu și ceva text al corpului, apoi faceți clic pe „Următorul”.

  • Deschideți lista verticală „Selectați aplicația” și alegeți aplicația din listă. Această secțiune include, de asemenea, câteva opțiuni avansate pe care le puteți utiliza pentru a crea notificări vizate, bazate pe factori precum versiunea aplicației, localizarea dispozitivului și ultima dată când utilizatorul s-a angajat cu aplicația dvs. Nu vom folosi niciuna dintre aceste opțiuni în notificarea noastră de testare, dar dacă doriți să vedeți ce este disponibil, atunci selectați „și…” și explorați derularea ulterioară.

  • După ce ați terminat de editat această secțiune, faceți clic pe „Următorul”.
  • Presupunând că doriți să o trimiteți imediat, deschideți meniul derulant „Trimiteți către utilizatori eligibili” și selectați „Acum”.
  • În partea dreaptă jos a ecranului, faceți clic pe „Publicare”.
  • Verificați toate informațiile din fereastra emergentă ulterioară și dacă sunteți încântat să continuați, selectați „Publicare”.

După câteva momente, toate dispozitivele client pe care le-ați vizat trebuie să primească această notificare în tava lor de sistem.

De cele mai multe ori, notificările FCM vor fi transmise imediat, dar ocazional poate dura câteva minute pentru a ajunge, deci nu vă panicați dacă notificarea dvs. este întârziată.

Stabilirea unor obiective: Evenimente de conversie a notificărilor

Atunci când creați o notificare, veți avea, de obicei, un obiectiv în minte - indiferent dacă acesta îi va conduce pe utilizatori înapoi la aplicație, convingându-i să participe la o achiziție în aplicație sau să vă deschidă pur și simplu notificarea.

Puteți atribui un obiectiv notificării dvs. utilizând Componentul de notificări și apoi urmăriți performanța notificării în tabloul de bord al raportării FCM.

Pentru a stabili un obiectiv, faceți clic pentru a extinde secțiunea „Evenimente de conversie” a Navigatorului Compozitorului, apoi deschideți meniul însoțitor și alegeți dintre evenimentele de conversie disponibile.

Notificarea dvs. a fost un succes?

După trimiterea unei notificări, puteți analiza performanțele sale în tabloul de bord al raportării FCM, care ar trebui să se încarce automat de fiecare dată când trimiteți o nouă sau puteți accesa direct tabloul de bord.

Chiar dacă nu ați stabilit niciun obiectiv explicit de conversie, puteți totuși să evaluați dacă utilizatorii acționează la notificările dvs., comparând numărul de livrări, cu numărul deschis.

Puteți selecta, de asemenea, oricare din această listă, pentru a vedea datele de trimitere, deschidere și conversie ca grafic. Dacă setați orice obiective de conversie, atunci acesta este și locul în care veți găsi statistici referitoare la aceste obiective.

Ce se întâmplă dacă aplicația mea este în prim-plan?

Notificările FCM se comportă diferit în funcție de starea aplicației client.

În mod implicit, aplicația dvs. nu va afișa niciun FCM pe care îl primește în timp ce este în prim plan, așa că atunci când trimiteți o, nu există nicio garanție pentru utilizatorii dvs. vedea acea .

Pentru a acționa pe aplicațiile pe care aplicația dvs. le primește în timp ce este în prim plan, va trebui să extindeți FirebaseMessagingService, să treceți peste metoda onReceived și apoi să regăsiți conținutul folosind fie getNotification, fie getData, în funcție de faptul că lucrați cu date sau notificări sau ambele.

Creați o nouă clasă Java numită „MyFirebaseMessagingService” și apoi adăugați următoarele:

public class MyFirebaseMessagingService extinde FirebaseMessagingService {@Override public void onReceived (Remote) {super.onReceived (la distanță);

De asemenea, va trebui să creați un obiect de notificare. Aceasta este șansa dvs. de a vă personaliza notificarea, de exemplu alegerea sunetului care ar trebui să fie redat de fiecare dată când utilizatorul primește această notificare sau aplicarea unei pictograme de notificare personalizate. De asemenea, va trebui să regăsiți conținutul din date sau notificări, de exemplu:

NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder (acesta, "channel_id") .setContentTitle (remote.getNotification (). GetTitle ()) .setContentText (remote.getNotification (). GetBody ()) .setPriority (NotificationCom) .setPriority (NotificationCom) setStyle (nou NotificationCompat.BigTextStyle ()) .setSound (RingtoneManager.getDefaultUri (RingtoneManager.TYPE_NOTIFICATION)) .setSmallIcon (R.mipmap.ic_launcher) .setAutoCancel (adevărat); NotificationManager notificationManager = (NotificationManager) getSystemService (Context.NOTIFICATION_SERVICE); notificationManager.notify (0, notificationBuilder.build ()); }}

După ce v-ați creat serviciul, nu uitați să îl adăugați la Manifest:

Acum, de fiecare dată când aplicația dvs. primește un FCM în timp ce este în prim-plan, va fi livrată către gestionarul onReceptiv (), iar aplicația dvs. va lua apoi măsurile definite de dvs., cum ar fi postarea notificării sau actualizarea conținutului aplicației.

Notificări mai atrăgătoare: vizând utilizatorii dvs.

Până acum, primisem aceeași notificare întregii noastre baze de utilizatori, dar notificările sunt mult mai interesante atunci când sunt vizați de utilizatori specifici.

Puteți utiliza Compositorul de notificări pentru a trimite diferite notificări către diferite părți din baza de utilizator. Întoarceți-vă la Notificatorul Compozitor și creați-vă notificarea în mod normal, dar în secțiunea „Țintă”, faceți clic pe „și”. Acest lucru vă oferă acces la o listă nouă, care conține următoarele opțiuni:

  • Versiune. Acest lucru vă permite să vizați sau să excludeți dispozitivele care rulează versiuni specifice ale aplicației dvs. De exemplu, puteți trimite notificări persoanelor care rulează versiunea gratuită, încurajându-i să treacă la versiunea Premium a aplicației.
  • Limba. Puteți utiliza această setare pentru a viza sau exclude diferitele limbi și limbi locale pe care le acceptă aplicația dvs., cum ar fi crearea de notificări adaptate pentru diferite zone de timp sau limbi.
  • Public (e) utilizator. Acest lucru vă permite să vizați sau să excludeți diferite secțiuni din audiența dvs. De exemplu, puteți utiliza această setare pentru a ispiti persoanele care au un istoric de a face achiziții în aplicație, oferindu-le un discount sau atrăgându-le atenția asupra tuturor produselor uimitoare in-app pe care tocmai le-ați lansat.
  • Proprietatea utilizatorului. Dacă configurați Firebase Analytics, atunci veți avea acces la o serie de informații despre publicul dvs. prin intermediul proprietăților utilizatorului. Puteți utiliza aceste proprietăți în combinație cu FCM, pentru a trimite notificări direcționate către secțiuni foarte specifice ale bazei dvs. de utilizator, cum ar fi persoanele cuprinse între 25 și 34 de ani, care sunt interesate de sport.
  • Predicție. Dacă configurați Predicții despre firebase, atunci puteți viza utilizatorii în funcție de cât de probabil vor avea un anumit comportament în următoarele 7 zile. De exemplu, dacă Predictions avertizează că cineva este probabil să se descarce de la jocul dvs. mobil, atunci puteți folosi FCM pentru a-i invita să participe la o nouă căutare sau pentru a le trimite o monedă în joc.
  • Ultima implicare a aplicației Dacă un utilizator nu și-a lansat aplicația într-un timp, atunci puteți utiliza această setare pentru a le trimite câteva notificări, doar pentru a le aminti despre întregul conținut excelent pe care aplicația dvs. trebuie să îl ofere.
  • Mai întâi deschis. Acest lucru vă permite să trimiteți notificări în funcție de prima dată când utilizatorul a deschis aplicația dvs., de exemplu, puteți ajuta utilizatorii noi să se ridice la viteză, trimițându-le notificări care conțin sfaturi și sfaturi utile.

Direcționarea unui singur dispozitiv cu jetoane de înregistrare

Am văzut deja cum să trimitem notificări vizate pe baza unor factori precum vârsta, interesele și interesele utilizatorului și ultima dată când s-au angajat cu aplicația dvs., dar puteți a deveni chit mai specific. În această secțiune finală, vă voi arăta cum puteți trimite o notificare FCM la un singur dispozitiv.

Când utilizatorul lansează aplicația pentru prima dată, SDK FCM generează un jeton de înregistrare pentru acea instanță a aplicației client. Puteți utiliza FirebaseInstanceId.getInstance (). GetInstanceId () pentru a surprinde acest jeton de înregistrare, apoi trimiteți o notificare la acest simbol specific.

Rețineți că, într-un proiect din lumea reală, în mod obișnuit surprindeți un jeton, trimițându-l pe serverul dvs. de aplicații și stocându-l folosind metoda preferată, dar pentru a ajuta lucrurile să fie îndreptate, pur și simplu voi tipări acest simbol în Logcatul de la Android Studio.

Iată principalul meu Activitate principală:

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; public class MainActivity extinde AppCompatActivity {private static final String TAG = "MainActivity"; @Override protected void onCreate (Bundle savedInstanceState) {super.onCreate (salvatInstanceState); setContentView (R.layout.activity_main); FirebaseInstanceId.getInstance (). GetInstanceId () .addOnCompleteListener (nou OnCompleteListener() {@ Supraversează public void onComplete (Task @NonNull task) {if (! task.isSuccessful ()) {// To do // return; } // Obțineți token ID-ul de instanță // String token = task.getResult (). GetToken (); String msg = getString (R.string.fcm_token, token); Log.d (TAG, msg); }}); }}

Deschideți-vă fișierul strings.xml și creați resursa de tip „fcm_token” la care facem referire în MainActivity:

Token FCM:% s

Acum puteți prelua simbolul unic al dispozitivului:

  • Instalați-vă proiectul pe dispozitivul Android conectat sau pe AVD.
  • Deschide Logcat-ul Android Studio, selectând fila „Logcat” (unde este poziționat cursorul în imaginea următoare).

  • Jetonul dispozitivului dvs. va fi tipărit în secțiunea „Debug” din Logcat, așa că deschideți meniul vertical și selectați „Debug”.

În funcție de cantitatea de informații din Logcatul dvs., poate fi dificil să localizați linia pe care o căutați. Dacă vă luptați, executați o căutare a cuvântului „jeton” sau încercați să închideți și apoi să relansați aplicația.

După ce ați recuperat simbolul, îl puteți utiliza pentru a trimite o notificare push către acest anumit dispozitiv:

  • Mergeți către Firebase Console și selectați proiectul dvs. din meniul derulant, dacă nu ați făcut-o deja.
  • Alegeți „Mesagerie cloud” din meniul din stânga.
  • Faceți clic pe butonul „Notificare nouă”.
  • Introduceți titlul și textul, în mod normal, dar faceți clic pe „Test pe dispozitiv”.

  • Copiați / inserați tokenul în câmpul „Adăugați o instanță…”, apoi faceți clic pe pictograma „+” albastră care apare.
  • Bifați caseta de însoțire a jetonului.

  • Faceți clic pe „Testare”.

Această notificare va apărea acum doar pe dispozitivul client vizat.

Înveliți

În acest articol, v-am arătat cum să trimiteți notificări push Android, folosind Firebase Cloud Messaging și cum să creați notificări care vizează diferite secțiuni ale bazei dvs. de utilizator.

Vei folosi FCM în propriile proiecte Android? Spuneți-ne în comentariile de mai jos!

Aveți niște întoarceri Amazon care ocupă pațiu în caă? Îmbunătățirea lor și expedierea lor poate fi uneori o durere, dar nu va trebui ă faceți față mult mai mult timp. În chimb, pu...

Realitatea augmentată, la fel ca realitatea virtuală, nu a luat niciodată într-adevăr drumul pe care mulți credeau că o va face. În timp ce unii îl foloec în moduri creative, major...

Interesant Pe Site