Android push paziņojumu nosūtīšana, izmantojot Firebase mākoņa ziņojumapmaiņu

Autors: Louise Ward
Radīšanas Datums: 4 Februāris 2021
Atjaunināšanas Datums: 28 Jūnijs 2024
Anonim
Android Push Notifications + Firebase Cloud Messaging
Video: Android Push Notifications + Firebase Cloud Messaging

Saturs


Lai arī tas neatrodas šajā apmācībā, jūs varat izmantot FCM arī augšupējiem paziņojumiem, ja FCM saņem no klienta lietojumprogrammas, vai arī paziņot par jūsu lietotni, kad tam ir pieejami jauni dati. Šādā veidā jūs varat nodrošināt, ka saziņa starp lietotnes serveri un klienta lietotni notiek tikai nepieciešamības gadījumā, kas ir daudz efektīvāk nekā klienta lietotne, kas regulāri sazinās ar serveri, un, iespējams, ir pieejami kādi jauni dati.

Tā kā FCM ir daļa no Firebase, tas labi spēlē arī citus Firebase pakalpojumus. Kad esat apguvis FCM pamatprincipus, iespējams, vēlēsities izmantot A / B testēšanu, lai noteiktu, kuri paziņojumi ir visefektīvākie, vai arī izmantojiet Firebase Predictions, lai visiem analītiskajiem datiem, kas ģenerēti no jūsu dažādajām FCM kampaņām, efektīvi izmantotu mašīnu apguvi.

FCM atbalsta divu veidu s:

  • Paziņojums s. Klienta lietojumprogramma izturēsies atšķirīgi atkarībā no tā, vai tā atrodas fonā vai priekšplānā, saņemot FKT. Ja jūsu lietotne atrodas fonā, Firebase SDK automātiski apstrādā un parāda to kā paziņojumu ierīces sistēmas teknē. Tā kā Android sistēma izveido paziņojumu jums, tas ir viens no vienkāršākajiem veidiem, kā lietotājiem nosūtīt paziņojumus. Ja jūsu lietotne saņem FCM, kamēr tā ir priekšplānā, tad sistēma nebūs apstrādājiet šo paziņojumu automātiski, atstājot jums iespēju apstrādāt lietotnes atzvanīšanu pakalpojumā OnSaņemts (). Vēlāk šajā apmācībā izpētīsim vietniRecepts (), taču tagad tikai ņemiet vērā, ka, ja jūsu lietotne kādu laiku atrodas priekšplānā, pēc noklusējuma tā lietotājam netiks parādīta.
  • Dati s. Atšķirībā no paziņojumiem, jūs varat izmantot datus, lai klienta lietojumprogrammai nosūtītu pielāgotus datu elementus. Tomēr FCM šiem datiem nosaka 4 KB ierobežojumu, tāpēc, ja jūsu noslodze pārsniedz 4 KB, tad jums būs jāielādē papildu dati, izmantojot WorkManager vai JobScheduler API.

Šajā apmācībā galvenā uzmanība tiks pievērsta paziņojumiem.


Kā ir ar Google mākoņa ziņojumapmaiņu?

Ja jūs izmantojat Google mākoņa ziņojumapmaiņas (GCM) serveri un klienta API, tad ir dažas sliktas ziņas: šis pakalpojums jau ir novecojis, un Google 2019. gada aprīlī plāno izslēgt “lielāko” GCM pakalpojumu. Ja jūs joprojām izmantojat izmantojot GCM, jums tagad jāsāk migrēt projekti uz FCM, un migrācijai jābūt pabeigtai līdz 2019. gada aprīlim.

Firebase pievienošana jūsu Android projektam

Let 's redzēt, cik viegli ir pievienot FCM pamata atbalstu savai lietotnei, un pēc tam izmantot to, lai nosūtītu push paziņojumus lietotājiem.

Tā kā FCM ir Firebase pakalpojums, jums būs jāpievieno Firebase savai lietotnei:

  • Dodieties uz Firebase konsoli.
  • Atlasiet “Pievienot projektu” un norādiet sava projekta nosaukumu.
  • Izlasiet noteikumus un nosacījumus. Ja esat priecīgs turpināt darbu, atlasiet “Es pieņemu…”, kam seko “Izveidot projektu”.
  • Atlasiet “Pievienot Firebase savai Android lietotnei”.
  • Ievadiet projekta paketes nosaukumu un pēc tam noklikšķiniet uz “Reģistrēt lietotni”.
  • Atlasiet “Lejupielādēt google-services.json”.
  • Programmā Android Studio velciet un nometiet google-services.json failu projekta direktorijā “app”.
  • Atveriet projekta līmeņa build.gradle failu un pievienojiet šo:

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

  • Atveriet lietotnes līmeņa build.gradle failu un pievienojiet Google pakalpojumu spraudni, kā arī Firebase Core un FCM atkarības:

// Pievienojiet Google pakalpojumu spraudni // Lietojiet spraudni: com.google.gms.google-services……… atkarības {ieviešanas failsTree (dir: libs, ietveriet:) // Pievienojiet Firebase Core // ieviešana com.google.firebase: firebase-core: 16.0.1 // Pievienot FCM // ieviešana com.google.firebase: firebase-messaging: 17.3.4

  • Pēc pieprasījuma sinhronizējiet izmaiņas.
  • Pēc tam jums jāpaziņo Firebase konsolei, ka esat veiksmīgi pievienojis Firebase savam projektam. Instalējiet savu lietotni fiziskā Android viedtālrunī vai planšetdatorā vai Android virtuālajā ierīcē (AVD).
  • Atpakaļ Firebase konsolē atlasiet “Palaist lietotni, lai pārbaudītu instalēšanu”.
  • Kad Firebase ir atklājis jūsu lietotni, tiek parādīts paziņojums “Apsveicam”. Atlasiet “Doties uz konsoli”.

Pirmā paziņojuma nosūtīšana, izmantojot Firebase

Un tas arī viss! Tagad jūs varat nosūtīt push paziņojumu lietotājiem, un šis paziņojums parādīsies ierīces sistēmas teknē (pagaidām pieņemsim, ka jūsu lietotne nav priekšplānā, kad tā tiek piegādāta).


Jūs izveidojat FCM paziņojumus, izmantojot paziņojumu sastādītāju, kas ir pieejams caur Firebase konsoli:

  • Pārliecinieties, ka jūsu lietotne ir instalēta un darbojas fonā un vai jūsu ierīcei ir aktīvs interneta savienojums.
  • Firebase konsolē kreisajā izvēlnē atlasiet “Cloud Messaging”.

  • Atlasiet “Sūtīt pirmo”.
  • Piešķiriet savu virsrakstu un pamattekstu un pēc tam noklikšķiniet uz Tālāk.

  • Atveriet nolaižamo izvēlni “Atlasīt lietotni” un sarakstā atlasiet savu lietojumprogrammu. Šajā sadaļā ir arī dažas uzlabotas opcijas, kuras varat izmantot mērķtiecīgu paziņojumu izveidošanai, pamatojoties uz tādiem faktoriem kā lietotnes versija, ierīces lokalizācija un pēdējā reize, kad lietotājs iesaistījās jūsu lietotnē. Mēs savā testa paziņojumā neizmantojam nevienu no šīm iespējām, taču, ja vēlaties redzēt pieejamo, atlasiet “un…” un izpētiet turpmāko nolaižamo izvēlni.

  • Kad esat pabeidzis šīs sadaļas rediģēšanu, noklikšķiniet uz Tālāk.
  • Pieņemot, ka vēlaties to tūlīt nosūtīt, atveriet nolaižamo izvēlni “Sūtīt tiesīgiem lietotājiem” un atlasiet “Tagad”.
  • Ekrāna labajā apakšējā stūrī noklikšķiniet uz “Publicēt”.
  • Pārbaudiet visu informāciju nākamajā uznirstošajā logā un, ja ar prieku turpiniet, atlasiet “Publicēt”.

Pēc dažiem mirkļiem visām klienta ierīcēm, uz kurām mērķējāt, vajadzētu saņemt šo paziņojumu to sistēmas teknē.

Lielākoties FCM paziņojumi tiks piegādāti nekavējoties, taču dažreiz var paiet dažas minūtes, līdz ierašanās ir notikusi, tāpēc nekautrējieties, ja paziņojums tiek aizkavēts.

Dažu mērķu iestatīšana: paziņojumu reklāmguvumu notikumi

Veidojot paziņojumu, parasti tiek ņemts vērā mērķis - neatkarīgi no tā, vai tas piespiež lietotājus atgriezties jūsu lietotnē, pārliecina viņus veikt pirkumu lietotnē vai vienkārši atver paziņojumu.

Jūs varat piešķirt paziņojumam mērķi, izmantojot paziņojumu sastādītāju, un pēc tam izsekot šī paziņojuma veiktspējai FCM pārskata informācijas panelī.

Lai uzstādītu mērķi, noklikšķiniet, lai izvērstu navigācijas komponista sadaļu “Reklāmguvumu notikumi”, pēc tam atveriet pievienoto nolaižamo izvēlni un izvēlieties no pieejamajiem reklāmguvumu notikumiem.

Vai jūsu paziņojums bija veiksmīgs?

Pēc paziņojuma nosūtīšanas jūs varat analizēt tā darbību FCM pārskata informācijas panelī, kuram vajadzētu automātiski ielādēt katru reizi, kad sūtāt jaunu, vai arī varat tieši piekļūt informācijas panelim.

Pat ja jūs neesat uzstādījis skaidrus reklāmguvumu mērķus, jūs joprojām varat novērtēt, vai lietotāji rīkojas atbilstoši jūsu paziņojumiem, salīdzinot piegādāto sūtījumu skaitu ar atvērto skaitu.

Šajā sarakstā varat arī atlasīt jebkuru, lai diagrammā redzētu nosūtīšanas, atvēršanas un reklāmguvumu datus. Ja iestatāt kādus reklāmguvumu mērķus, tad šeit atradīsit arī statistiku, kas attiecas uz šiem mērķiem.

Ko darīt, ja mana lietotne ir priekšplānā?

FCM paziņojumi darbojas atšķirīgi, atkarībā no klienta lietojumprogrammas stāvokļa.

Pēc noklusējuma jūsu lietotne nerādīs nevienu FCM, ko tā saņem, kamēr tā ir priekšplānā, tāpēc, nosūtot simbolu, jūsu lietotājiem netiek garantēta redzēt ka.

Darboties pēc tām, kuras jūsu lietotne saņem, kamēr tā atrodas priekšplāns, jums būs jāpagarina FirebaseMessagingService, jāparaksta onReceptd metode un pēc tam jāizgūst saturs, izmantojot vai nu getNotification vai getData, atkarībā no tā, vai strādājat ar datiem vai paziņojumiem, vai abiem.

Izveidojiet jaunu Java klasi ar nosaukumu “MyFirebaseMessagingService” un pēc tam pievienojiet:

public class MyFirebaseMessagingService paplašina FirebaseMessagingService {@Orride public void onReceptiond (Remote) {super.onReceptiond (remote);

Jums būs jāizveido arī paziņojumu objekts. Šī ir jūsu iespēja pielāgot savu paziņojumu, piemēram, izvēloties skaņu, kas jāatskaņo, kad lietotājs saņem šo paziņojumu, vai izmantojot pielāgotas paziņojuma ikonu. Jums būs jāiegūst arī saturs no datiem vai paziņojuma, piemēram:

NotificationCompat.Builder paziņojumuBuilder = jauns NotificationCompat.Builder (tas, "channel_id") .setContentTitle (remote.getNotification (). GetTitle ()) .setContentText (remote.getNotification (). GetBody ()) .setPriority (NotificationCompat.PRIORITY_Docs. setStyle (jauns NotificationCompat.BigTextStyle ()) .setSound (RingtoneManager.getDefaultUri (RingtoneManager.TYPE_NOTIFICATION)) .setSmallIcon (R.mipmap.ic_launcher) .setAutoCancel (true); NotificationManager noticeManager = (NotificationManager) getSystemService (Context.NOTIFICATION_SERVICE); paziņojumsManager.notify (0, paziņojumuBuilder.build ()); }}

Kad esat izveidojis savu pakalpojumu, neaizmirstiet to pievienot manifestā:

Tagad, katru reizi, kad jūsu lietotne saņem FCM, kamēr tā ir priekšplānā, tā tiks piegādāta apstrādātājam onReception (), un jūsu lietotne pēc tam veiks jūsu noteikto darbību, piemēram, izliks paziņojumu vai atjauninās jūsu lietotnes saturu.

Saistošāki paziņojumi: mērķauditorijas atlase lietotājiem

Līdz šim mēs to pašu paziņojumu esam sūtījuši visai mūsu lietotāju bāzei, taču paziņojumi ir daudz saistošāki, ja tie ir vērsti uz konkrētiem lietotājiem.

Varat izmantot paziņojumu sastādītāju, lai nosūtītu dažādus paziņojumus uz dažādām jūsu lietotāju bāzes daļām. Dodieties pie paziņojumu sastādītāja un izveidojiet savu paziņojumu kā parasti, bet sadaļā “Mērķis” noklikšķiniet uz “un”. Tas dod jums piekļuvi jaunam nolaižamajam izvēlnei, kurā ir šādas iespējas:

  • Versija. Tas ļauj atlasīt vai izslēgt ierīces, kurās darbojas noteiktas lietojumprogrammas versijas. Piemēram, jūs varētu sūtīt paziņojumus cilvēkiem, kuri izmanto bezmaksas versiju, mudinot viņus jaunināt uz jūsu lietotnes Premium versiju.
  • Valoda. Varat izmantot šo iestatījumu, lai atlasītu vai izslēgtu dažādas valodas un lokālus, kurus atbalsta jūsu programma, piemēram, lai izveidotu paziņojumus, kas ir pielāgoti dažādām laika joslām vai valodām.
  • Lietotāju auditorija (-as). Tas ļauj atlasīt mērķauditoriju vai izslēgt dažādas auditorijas sadaļas. Piemēram, jūs varētu izmantot šo iestatījumu, lai vilinātu cilvēkus, kuriem ir bijusi pirkumu lietotnē vēsture, piedāvājot viņiem atlaidi vai pievēršot viņu uzmanību visiem pārsteidzošajiem jaunajiem produktiem lietotnē, kurus tikko izlaidāt.
  • Lietotāja īpašums. Ja esat iestatījis Firebase Analytics, izmantojot lietotāja īpašumus, jums būs pieejama virkne informācijas par savu mērķauditoriju. Jūs varat izmantot šīs īpašības kombinācijā ar FCM, lai nosūtītu mērķtiecīgus paziņojumus ļoti specifiskām savas lietotāju bāzes sadaļām, piemēram, cilvēkiem vecumā no 25 līdz 34 gadiem, kuri interesējas par sportu.
  • Prognoze. Ja esat iestatījis Firebase prognozes, varat atlasīt lietotājus, pamatojoties uz to, cik iespējams, ka viņi iesaistīsies noteiktā uzvedībā nākamo 7 dienu laikā. Piemēram, ja Prognozes brīdina, ka kāds, visticamāk, atvienosies no jūsu mobilās spēles, tad jūs varētu izmantot FCM, lai uzaicinātu viņu piedalīties jaunā kvestā vai nosūtītu viņiem kādu spēles iekšējo valūtu.
  • Pēdējā iesaistīšanās lietotnē. Ja lietotājs kādu laiku nav palaidis jūsu lietotni, varat izmantot šo iestatījumu, lai nosūtītu viņam dažus paziņojumus, tikai lai atgādinātu viņiem par lielisko saturu, ko piedāvā jūsu lietotne.
  • Vispirms atveriet. Tas ļauj jums nosūtīt paziņojumus, pamatojoties uz to, kad lietotājs pirmo reizi atvēra jūsu lietotni, piemēram, jūs varētu palīdzēt jauniem lietotājiem ātri sasniegt ātrumu, nosūtot viņiem paziņojumus ar noderīgiem padomiem un padomiem.

Mērķauditorijas atlase uz vienu ierīci ar reģistrācijas žetoniem

Mēs jau esam redzējuši, kā nosūtīt mērķtiecīgus paziņojumus, pamatojoties uz tādiem faktoriem kā lietotāja vecums, intereses un pēdējā reize, kad viņš iesaistījās jūsu lietotnē, taču jūs varat iegūt pat konkrētāk. Šajā pēdējā sadaļā es jums parādīšu, kā nosūtīt FCM paziņojumu adresātam viens ierīce.

Kad lietotājs pirmo reizi palaiž jūsu lietotni, FCM SDK ģenerē reģistrācijas pilnvaru šim klienta lietotnes gadījumam. Lai reģistrētu šo reģistrācijas pilnvaru, varat izmantot FirebaseInstanceId.getInstance (). GetInstanceId () un pēc tam nosūtīt paziņojumu uz šo īpašo pilnvaru.

Ņemiet vērā, ka reālās pasaules projektā jūs parasti uztverat marķieri, nosūtot to uz savas lietotnes serveri un saglabājot to ar vēlamo metodi, bet, lai palīdzētu visu padarīt saprotamāku, es vienkārši to izdrukāšu Android Studio logcat.

Šeit ir mana pabeigtā galvenā darbība:

importēt android.support.v7.app.AppCompatActivity; importa android.os.Bundle; importēt android.support.annotation.NonNull; importa android.util.Log; importējiet com.google.android.gms.tasks.OnCompleteListener; importēt com.google.android.gms.tasks.Task; importēt com.google.firebase.iid.FirebaseInstanceId; importējiet com.google.firebase.iid.InstanceIdResult; publiskās klases MainActivity paplašina AppCompatActivity {privātu statisku galīgo virknes TAG = "MainActivity"; @Override aizsargāts tukšums onCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceState); setContentView (R.layout.activity_main); FirebaseInstanceId.getInstance (). GetInstanceId () .addOnCompleteListener (jauns OnCompleteListener() {@ Pārsniegt publisku spēkā neesamību vietnē Complete (@NonNull. Uzdevums uzdevums) {if (! task.isSuccessful ()) {// Veikt // atgriezties; } // Iegūstiet instances ID marķieri // Stīgu marķieris = task.getResult (). GetToken (); Stīga msg = getString (R.string.fcm_token, token); Log.d (TAG, msg); }}); }}

Atveriet failu strings.xml un izveidojiet virknes resursu “fcm_token”, uz kuru mēs atsaucamies mūsu galvenajā darbībā:

FCM marķieris:% s

Tagad varat izgūt ierīces unikālo pilnvaru:

  • Instalējiet savu projektu pievienotajā Android ierīcē vai AVD.
  • Atveriet Android Studio logcat, atlasot cilni Logcat (kur kursors ir novietots nākamajā ekrānuzņēmumā).

  • Jūsu ierīces marķieris tiks izdrukāts Logcat sadaļā Atkļūdošana, tāpēc atveriet nolaižamo izvēlni un atlasiet Atkļūdošana.

Atkarībā no informācijas daudzuma jūsu Logcat, var būt grūti pamanīt meklēto līniju. Ja jūs cīnāties, mēģiniet meklēt vārdu “pilnvara” vai mēģiniet aizvērt un pēc tam atsākt lietotni.

Kad esat ieguvis marķieri, varat to izmantot, lai nosūtītu push paziņojumu uz šo konkrēto ierīci:

  • Dodieties uz Firebase konsoli un nolaižamajā izvēlnē atlasiet savu projektu, ja vēl neesat to izdarījis.
  • Kreisajā pusē esošajā izvēlnē izvēlieties “Mākoņu ziņojumi”.
  • Noklikšķiniet uz pogas “Jauns paziņojums”.
  • Ievadiet virsrakstu un tekstu, kā parasti, bet pēc tam noklikšķiniet uz “Pārbaudīt ierīci”.

  • Nokopējiet / ielīmējiet marķieri laukā “Pievienot instanci…” un pēc tam noklikšķiniet uz parādītās mazās zilās “+” ikonas.
  • Atzīmējiet izvēles rūtiņu, kas pievienota marķierim.

  • Noklikšķiniet uz “Test”.

Šis paziņojums tagad parādīsies tikai mērķa klienta ierīcē.

Iesaiņošana

Šajā rakstā es jums parādīju, kā sūtīt Android push paziņojumus, izmantojot Firebase mākoņa ziņojumapmaiņu, un kā izveidot paziņojumus, kas mērķēti uz dažādām jūsu lietotāju bāzes sadaļām.

Vai jūs plānojat izmantot FCM savos Android projektos? Paziņojiet mums komentāros zemāk!

Tagad Humble Mobile Bundle 22 ir pieejam līdz pat atoņām lielikām Android pēlēm.Jū varat makāt tikai UD 1, lai iegūtu pilnu piekļuvi trim no šīm atoņām pēlēm, vai arī makāt UD 5 vai vairāk, lai iegūtu...

Tā kā mē arvien biežāk izmantojam avu viedtālruņu un cita mobilā ierīce, lai iegādāto prece tiešaitē vai paraktīto uz maka pakalpojumiem, mum arī jāizveido un jāizmanto arežģītāka parole. Lai gan mē n...

Ieteicams