Ang pagpapadala ng mga notification sa push sa Android gamit ang Firebase Cloud Messaging

May -Akda: Louise Ward
Petsa Ng Paglikha: 4 Pebrero 2021
I -Update Ang Petsa: 1 Hulyo 2024
Anonim
Ang pagpapadala ng mga notification sa push sa Android gamit ang Firebase Cloud Messaging - Apps
Ang pagpapadala ng mga notification sa push sa Android gamit ang Firebase Cloud Messaging - Apps

Nilalaman


Bagaman ito ay lampas sa saklaw ng tutorial na ito, maaari mo ring gamitin ang FCM para sa mga pang-agos na abiso, kung saan natatanggap ang FCM mula sa aplikasyon ng kliyente, o ipagbigay-alam sa iyong app kapag may bagong data na magagamit para ma-download ito. Sa ganitong paraan, masisiguro mo ang komunikasyon sa pagitan ng iyong app server at client app ay nangyayari lamang kapag kinakailangan, na kung saan ay mas mabisa kaysa sa client app na nakikipag-ugnay sa server sa mga regular na agwat, sa off-opportunity maaaring mayroong ilang mga magagamit na data.

Dahil ang FCM ay bahagi ng Firebase, mahusay din itong gumaganap sa iba pang mga serbisyo ng Firebase. Kapag na-master mo ang mga mahahalagang FCM, maaaring gusto mong gumamit ng Pagsubok sa A / B upang matukoy kung aling mga abiso ang pinaka epektibo, o gumamit ng Firebase Prediction upang mag-apply ng malakas na pag-aaral ng makina sa lahat ng data ng analytics na nabuo mula sa iyong iba't ibang mga kampanya ng FCM.


Sinusuportahan ng FCM ang dalawang uri ng s:

  • Abiso s. Ang application ng kliyente ay magkakaiba sa pag-uugali depende sa nasa background o sa harapan kapag natanggap nito ang FCM. Kung nasa background ang iyong app, pagkatapos ay awtomatikong iproseso ng Firebase SDK ang at ipakita ito bilang isang abiso sa tray ng system ng aparato. Dahil nabuo ng system ng Android ang abiso para sa iyo, ito ay isa sa mga pinakamadaling paraan upang magpadala ng mga abiso sa pagtulak sa iyong mga gumagamit. Kung ang iyong app ay tumatanggap ng isang FCM habang nasa harapan ito, pagkatapos ang system hindi hawakan nang awtomatiko itong hawakan, iniwan ka upang iproseso ang callback sa onReceived () callback ng iyong app. Susubukan naming galugarin onReceived () mamaya sa tutorial na ito, ngunit sa ngayon ay alalahanin lamang na kung ang iyong app ay nakatanggap ng habang ito ay nasa harapan, pagkatapos ay sa default na ito ay hindi maipakita sa gumagamit.
  • Data s. Hindi tulad ng notification s, maaari mong gamitin ang data upang maipadala ang mga pasadyang elemento ng data sa application ng kliyente. Gayunpaman, ang FCM ay naglalagay ng isang limitasyon ng 4KB sa mga data na ito, kaya kung ang iyong kargamento ay lumampas sa 4KB, kakailanganin mong makuha ang karagdagang data gamit ang WorkManager o ang JobScheduler API.

Sa tutorial na ito, tututuon kami sa mga notification s.


Kumusta ang tungkol sa Google Cloud Messaging?

Kung gumagamit ka ng server ng Google Cloud Messaging (GCM) at mga API ng kliyente, kung gayon mayroong ilang masamang balita: ang serbisyong ito ay naalis na at pinaplano ng Google na i-off ang "karamihan" na mga serbisyo ng GCM sa Abril 2019. Kung ikaw ay pa rin gamit ang GCM, pagkatapos ay dapat mong simulan ang paglipat ng iyong mga proyekto sa FCM ngayon, at dapat na nakumpleto ang iyong paglipat sa Abril 2019.

Pagdaragdag ng Firebase sa iyong Android proyekto

Tingnan natin kung gaano kadali ang pagdaragdag ng pangunahing suporta sa FCM sa iyong app, at pagkatapos ay gamitin ito upang magpadala ng mga abiso sa pagtulak sa iyong mga gumagamit.

Yamang ang FCM ay isang serbisyo ng Firebase, kakailanganin mong magdagdag ng Firebase sa iyong app:

  • Tumungo sa Firebase Console.
  • Piliin ang "Magdagdag ng proyekto," at bigyan ang pangalan ng iyong proyekto.
  • Basahin ang mga termino at kundisyon. Kung masisiyahan kang magpatuloy, pagkatapos ay piliin ang "Tumanggap ako ..." kasunod ng "Lumikha ng proyekto."
  • Piliin ang "Magdagdag ng Firebase sa iyong Android app."
  • Ipasok ang pangalan ng package ng iyong proyekto, at pagkatapos ay i-click ang "Magrehistro app."
  • Piliin ang "I-download ang google-services.json."
  • Sa Android Studio, i-drag at i-drop ang google-services.json file sa direktoryo na "app" ng iyong proyekto.
  • Buksan ang iyong file-level build.gradle file at idagdag ang sumusunod:

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

  • Buksan ang iyong file na antas ng build.gradle ng app, at idagdag ang plugin ng mga serbisyo ng Google, kasama ang mga dependencies para sa Firebase Core at FCM:

// Idagdag ang plugin ng Google services // apply plugin: com.google.gms.google-services……… dependencies {implement fileTree (dir: libs, kasama ang:) // Magdagdag ng Firebase Core // implementing com.google.firebase: firebase-core: 16.0.1 // Magdagdag ng FCM // pagpapatupad com.google.firebase: firebase-messaging: 17.3.4

  • Kapag sinenyasan, i-sync ang iyong mga pagbabago.
  • Susunod, kailangan mong ipaalam sa Firebase Console na matagumpay mong naidagdag ang Firebase sa iyong proyekto. I-install ang iyong app sa alinman sa isang pisikal na Android smartphone o tablet, o isang Android Virtual Device (AVD).
  • Bumalik sa Firebase Console, piliin ang "Run app upang i-verify ang pag-install."
  • Kapag nakita ng Firebase ang iyong app, makakakita ka ng isang "Binabati kita". Piliin ang "Magpatuloy sa console."

Ang pagpapadala ng iyong unang push notification sa Firebase

At iyon! Maaari ka na ngayong magpadala ng isang push notification sa iyong mga gumagamit, at ang notification na iyon ay lilitaw sa tray ng system ng aparato (para sa ngayon, ipalagay na ang iyong app ay hindi nasa harapan kapag naihatid ang.

Lumilikha ka ng mga abiso ng FCM gamit ang Mga Abiso sa Kompormasyon, na magagamit sa pamamagitan ng Firebase Console:

  • Tiyaking naka-install ang iyong app at tumatakbo sa background, at na ang iyong aparato ay may isang aktibong koneksyon sa Internet.
  • Sa Firebase Console, piliin ang "Cloud Messaging" mula sa kaliwang menu.

  • Piliin ang "Ipadala ang iyong una."
  • Bigyan ang iyong pamagat at ilang teksto ng katawan, at pagkatapos ay i-click ang "Susunod."

  • Buksan ang "Piliin ang app" na pagbagsak, at piliin ang iyong aplikasyon mula sa listahan. Kasama rin sa seksyong ito ang ilang mga advanced na pagpipilian na maaari mong magamit upang lumikha ng mga naka-target na abiso, batay sa mga kadahilanan tulad ng bersyon ng app, lokal ng aparato, at sa huling oras na nakikipagtulungan ang gumagamit sa iyong app. Hindi namin ginagamit ang alinman sa mga pagpipilian na ito sa aming abiso sa pagsubok, ngunit kung nais mong makita kung ano ang magagamit, pagkatapos ay piliin ang "at ..." at tuklasin ang kasunod na pagbagsak.

  • Kapag natapos mo na ang pag-edit ng seksyong ito, i-click ang "Susunod."
  • Ipagpalagay na nais mong ipadala ito kaagad, buksan ang "Ipadala sa mga karapat-dapat na gumagamit" at piliin ang "Ngayon."
  • Sa ilalim-kanan ng screen, i-click ang "I-publish."
  • Suriin ang lahat ng impormasyon sa kasunod na popup, at kung natutuwa kang magpatuloy pagkatapos ay piliin ang "I-publish."

Pagkaraan ng ilang sandali, ang lahat ng mga aparato ng kliyente na na-target mo ay dapat makatanggap ng notification na ito sa kanilang tray ng system.

Karamihan sa mga oras, ang mga abiso ng FCM ay maipapadala kaagad, ngunit paminsan-minsan ay maaaring tumagal ng ilang minuto para sa isang dumating, kaya huwag matakot kung naantala ang iyong abiso.

Pagtatakda ng ilang mga layunin: Mga kaganapan sa conversion ng notification

Kapag lumilikha ng isang abiso, karaniwang mayroon kang isang layunin sa isip - kung ang mga gumagamit ng pagmamaneho pabalik sa iyong app, na nakakumbinsi sa kanila na ibasura ang isang in-app na pagbili, o simpleng pagbubukas ng iyong abiso.

Maaari kang magtalaga ng isang layunin sa iyong abiso, gamit ang Kompormador ng Abiso, at pagkatapos ay subaybayan ang pagganap ng abiso sa dashboard ng pag-uulat ng FCM.

Upang magtakda ng isang layunin, i-click upang mapalawak ang seksyon na "Mga Kaganapan sa Pagbabago" ng Navigation Composer, pagkatapos ay buksan ang kasamang pagbagsak at pumili mula sa magagamit na mga kaganapan sa conversion.

Tagumpay ba ang iyong abiso?

Pagkatapos magpadala ng isang abiso, maaari mong pag-aralan ang pagganap nito sa dashboard ng pag-uulat ng FCM, na dapat awtomatikong i-load tuwing magpadala ka ng isang bago, o maaari mong direktang ma-access ang dashboard.

Kahit na hindi mo naitakda ang anumang malinaw na mga layunin ng conversion, maaari mo ring sukatin kung kumikilos ang mga gumagamit sa iyong mga abiso, sa pamamagitan ng paghahambing ng bilang na naihatid, sa bilang ng binuksan.

Maaari ka ring pumili ng anuman sa listahang ito, upang makita ang nagpadala, nakabukas at data ng conversion bilang isang grap. Kung nagtatakda ka ng anumang mga layunin sa conversion, narito rin kung saan mo mahahanap ang mga istatistika na may kaugnayan sa mga layunin.

Paano kung nasa harapan ko ang aking app?

Ang mga notification ng FCM ay kumilos nang naiiba depende sa estado ng aplikasyon ng kliyente.

Bilang default, hindi maipakita ng iyong app ang anumang natanggap na FCM habang nasa harapan ito, kaya kapag nagpadala ka ng isang walang garantiya ang iyong mga gumagamit ay talagang tingnan na.

Upang kumilos sa s natanggap ng iyong app habang nasa foreground, kakailanganin mong palawakin ang FirebaseMessagingService, i-overrose ang onReceived na pamamaraan, at pagkatapos makuha ang nilalaman ng paggamit ng alinman sa getNotification o getData, depende sa kung nagtatrabaho ka sa data o notification s, o pareho.

Lumikha ng isang bagong klase ng Java na pinangalanang "MyFirebaseMessagingService" at pagkatapos ay idagdag ang sumusunod:

pampublikong klase na MyFirebaseMessagingService ay nagpapalawak ng FirebaseMessagingService {@Override pampublikong walang bisa saReceived (Remote) {super.onReceived (remote);

Kailangan mo ring lumikha ng isang object ng abiso. Ito ang iyong pagkakataon upang ipasadya ang iyong abiso, halimbawa ng pagpili ng tunog na dapat maglaro tuwing natatanggap ng gumagamit ang notification na ito, o nag-aaplay ng isang pasadyang icon ng notification. Kailangan mo ring makuha ang nilalaman mula sa data o abiso, halimbawa:

NotificationCompat.Builder notificationBuilder = bagong notificationCompat.Builder (ito, "channel_id") .setContentTitle (remote.getNotification (). GetTitle ()) .setContentText (remote.getNotification (). GetBody ()) .setPriority (NotificationCompat.PRIOR) setStyle (bagong notificationCompat.BigTextStyle ()) .setSound (RingtoneManager.getDefaultUri (RingtoneManager.TYPE_NOTIFICATION)) .setSmallIcon (R.mipmap.ic_launcher) .setAutoCancel (totoo); NotificationManager notificationManager = (NotificationManager) makakuha ngSystemService (Context.NOTIFICATION_SERVICE); notificationManager.notify (0, notificationBuilder.build ()); }}

Kapag nilikha mo ang iyong serbisyo, huwag kalimutang idagdag ito sa iyong Manifest:

Ngayon, sa tuwing nakakatanggap ang iyong app ng isang FCM habang nasa harapan ito, ihahatid ito sa handler na onReceived () at ang iyong app ay kukuha ng aksyon na tinukoy mo, tulad ng pag-post ng abiso o pag-update ng nilalaman ng iyong app.

Higit pang nakakaengganyo ng mga abiso: Pag-target sa iyong mga gumagamit

Hanggang ngayon, nagpadala kami ng parehong abiso sa aming buong base ng gumagamit, ngunit ang mga abiso ay higit na nakakaengganyo kapag na-target nila ang mga partikular na gumagamit.

Maaari mong gamitin ang kompositor ng Abiso upang magpadala ng iba't ibang mga abiso, sa iba't ibang bahagi ng iyong base ng gumagamit. Tumungo sa kompositor ng Abiso at lumikha ng iyong abiso bilang normal, ngunit sa seksyong "Target", i-click ang "at." Nagbibigay ito sa iyo ng pag-access sa isang bagong pagbagsak, na naglalaman ng mga sumusunod na pagpipilian:

  • Bersyon. Pinapayagan ka nitong mag-target, o ibukod, ang mga aparato na nagpapatakbo ng mga tukoy na bersyon ng iyong aplikasyon. Halimbawa, maaari kang magpadala ng mga abiso sa mga taong nagpapatakbo ng libreng bersyon, hinihikayat silang mag-upgrade sa Premium bersyon ng iyong app.
  • Wika. Maaari mong gamitin ang setting na ito upang mai-target o ibukod ang iba't ibang mga wika at mga lokal na sinusuportahan ng iyong aplikasyon, tulad ng paglikha ng mga abiso na iniayon para sa iba't ibang mga time zone o wika.
  • Mga tagapakinig ng gumagamit. Hinahayaan ka nitong mag-target, o ibukod ang iba't ibang mga seksyon ng iyong madla. Halimbawa, maaari mong gamitin ang setting na ito upang tuksuhin ang mga taong may kasaysayan ng paggawa ng mga in-app na pagbili, sa pamamagitan ng pag-alok sa kanila ng isang diskwento o pagguhit ng kanilang pansin sa lahat ng kamangha-manghang mga bagong in-app na produkto na iyong pinakawalan.
  • Pag-aari ng gumagamit. Kung naka-setup ka ng Firebase Analytics, magkakaroon ka ng access sa isang hanay ng impormasyon tungkol sa iyong madla, sa pamamagitan ng mga katangian ng gumagamit. Maaari mong gamitin ang mga pag-aari na ito kasama ang FCM, upang maipadala ang mga naka-target na mga abiso sa napaka-tukoy na mga seksyon ng iyong base ng gumagamit, tulad ng mga taong nasa loob ng edad na 25-34 na interesado sa isport.
  • Pagtula. Kung nag-setup ka ng Mga hula sa Firebase, pagkatapos ay maari mong mai-target ang mga gumagamit batay sa kung gaano malamang sila ay makisali sa isang partikular na pag-uugali sa susunod na 7 araw. Halimbawa, kung binabalaan ng Mga Manghuhula na ang isang tao ay malamang na mag-disengage mula sa iyong mobile na laro, pagkatapos ay maaari mong gamitin ang FCM upang mag-anyaya sa kanila na makilahok sa isang bagong pakikipagsapalaran, o upang magpadala sa kanila ng ilang mga in-game na pera.
  • Huling pakikipag-ugnay sa app. Kung hindi inilunsad ng isang gumagamit ang iyong app sa isang habang, pagkatapos ay maaari mong gamitin ang setting na ito upang maipadala sa kanila ang ilang mga abiso, upang paalalahanan sila tungkol sa lahat ng mahusay na nilalaman na inaalok ng iyong app.
  • Una buksan. Hinahayaan ka nitong magpadala ng mga abiso batay sa unang pagkakataon na binuksan ng gumagamit ang iyong app, halimbawa maaari mong tulungan ang mga bagong gumagamit na mapabilis sa pamamagitan ng pagpapadala sa kanila ng mga abiso na naglalaman ng mga kapaki-pakinabang na tip at payo.

Pag-target ng isang solong aparato na may mga token sa pagpaparehistro

Nakita na namin kung paano magpadala ng mga naka-target na abiso batay sa mga kadahilanan tulad ng edad, interes, at huling beses na nakikibahagi sila sa iyong app, ngunit maaari mong makakuha ng kahit na mas tiyak. Sa huling bahagi na ito, ipapakita ko sa iyo kung paano magpadala ng isang abiso sa FCM sa isang solong aparato.

Kapag inilunsad ng gumagamit ang iyong app sa unang pagkakataon, ang FCM SDK ay bumubuo ng isang token sa pagrehistro para sa halimbawang app ng kliyente. Maaari mong gamitin ang FirebaseInstanceId.getInstance (). GetInstanceId () upang makuha ang token ng pagpaparehistro, at pagkatapos ay magpadala ng isang abiso sa partikular na token na ito.

Tandaan na sa isang tunay na proyekto sa mundo, karaniwang nakukuha mo ang isang token sa pamamagitan ng pagpapadala nito sa iyong server ng app at itatago ito gamit ang iyong ginustong pamamaraan, ngunit upang matulungan ang mga bagay na diretso ay i-print ko lamang ang token na ito sa Logcat ng Android Studio.

Narito ang nakumpleto kong MainActivity:

i-import ang android.support.v7.app.AppCompatActivity; i-import ang android.os.Bundle; i-import ang android.support.annotation.NonNull; i-import ang android.util.log; import com.google.android.gms.tasks.OnCompleteListener; mag-import ng com.google.android.gms.tasks.Task; import com.google.firebase.iid.FirebaseInstanceId; import com.google.firebase.iid.InstanceIdResult; pampublikong klase na MainActivity ay umaabot ng AppCompatActivity {pribadong static final String TAG = "MainActivity"; Protektado ng @Override na walang bisa saCreate (Bundle saveInstanceState) {super.onCreate (saveInstanceState); setContentView (R.layout.activity_main); FirebaseInstanceId.getInstance (). GetInstanceId () .addOnCompleteListener (bagong OnCompleteListener() {@Override pampublikong walang bisa saComplete (@NonNull Task gawain) {kung (! task.isSuccessful ()) {// Upang gawin // bumalik; } // Kunin ang token ng Instance // String token = task.getResult (). GetToken (); String msg = getString (R.string.fcm_token, token); Mag-log.d (TAG, msg); }}); }}

Buksan ang iyong mga strings.xml file at lumikha ng "fcm_token" na mapagkukunan ng string na tinutukoy namin sa aming MainActivity:

FCM Token:% s

Maaari mo na ngayong makuha ang natatanging token ng iyong aparato:

  • I-install ang iyong proyekto sa konektadong Android device, o AVD.
  • Buksan ang Logs ng Android Studio, sa pamamagitan ng pagpili ng tab na "Logcat" (kung saan nakalagay ang cursor sa sumusunod na screenshot).

  • Ang token ng iyong aparato ay mai-print sa seksyong "Debug" ng Logcat, kaya buksan ang pagbagsak at piliin ang "Debug."

Depende sa dami ng impormasyon sa iyong Logcat, maaaring mahirap makita ang linya na iyong hinahanap. Kung nahihirapan ka, pagkatapos ay magpatakbo ng isang paghahanap para sa salitang "token," o subukang isara at pagkatapos ay muling mai-app ang app.

Kapag nakuha mo ang token, maaari mo itong gamitin upang magpadala ng isang abiso ng push sa partikular na aparato na ito:

  • Tumungo sa Firebase Console at piliin ang iyong proyekto mula sa menu ng pagbagsak, kung wala ka pa.
  • Piliin ang "Cloud Messaging" mula sa kaliwang menu.
  • I-click ang pindutan ng "Bagong abiso".
  • Ipasok ang pamagat at teksto, bilang normal, ngunit pagkatapos ay i-click ang "Pagsubok sa aparato."

  • Kopyahin / idikit ang iyong token sa patlang na "Magdagdag ng isang halimbawa ...", at pagkatapos ay i-click ang maliit na asul na + + na icon na lilitaw.
  • Piliin ang kahon ng kasamang token.

  • I-click ang "Pagsubok."

Lilitaw na ngayon ang notification na ito sa naka-target na aparato ng kliyente lamang.

Pagputol

Sa artikulong ito, ipinakita ko sa iyo kung paano magpadala ng mga notification ng push sa Android, gamit ang Firebase Cloud Messaging, at kung paano lumikha ng mga abiso na nagta-target ng iba't ibang mga seksyon ng iyong base ng gumagamit.

Gagamitin mo ba ang FCM sa iyong sariling mga proyekto sa Android? Ipaalam sa amin sa mga komento sa ibaba!

a ngayon, ang cybercrime ay tulad ng iang alot a internet na ang mga kumpanya ay pinipilit na kumalap ng mga epeyalita upang protektahan ila. Kaya mo maging ia a mga cyber uperheroe na ito kaama ang 2...

Mula a mga gobyerno hanggang a malalaking korporayon, walang ligta a mga hacker. Kahit na ang eBay ay naira ang network, na may data na higit a 145 milyong mga gumagamit na kinuha....

Sikat Na Ngayon