„Android“ tiesioginių pranešimų siuntimas naudojant „Firebase Cloud Cloud“

Autorius: Louise Ward
Kūrybos Data: 4 Vasario Mėn 2021
Atnaujinimo Data: 1 Liepos Mėn 2024
Anonim
„Android“ tiesioginių pranešimų siuntimas naudojant „Firebase Cloud Cloud“ - Programos
„Android“ tiesioginių pranešimų siuntimas naudojant „Firebase Cloud Cloud“ - Programos

Turinys


Nors tai nepatenka į šio vadovo taikymo sritį, galite naudoti FCM pranešimams tiekti, kai FCM gauna iš kliento programos, arba pranešti apie jūsų programą, kai yra naujų duomenų, kuriuos galima atsisiųsti. Tokiu būdu galite užtikrinti, kad ryšys tarp programos serverio ir kliento programos vyksta tik tada, kai to reikia, o tai yra daug efektyviau nei kliento programa, susisiekianti su serveriu reguliariais laiko tarpais, dėl atsitiktinumo gali būti naujų duomenų.

Kadangi FCM yra „Firebase“ dalis, ji taip pat puikiai žaidžia su kitomis „Firebase“ paslaugomis. Įgiję pagrindinius FCM pagrindus, galbūt norėsite naudoti A / B testavimą, kad nustatytumėte efektyviausius pranešimus, arba naudokite „Firebase Predictions“, kad galėtumėte efektyviai mokytis kompiuterio visiems analizės duomenims, sugeneruotiems iš jūsų įvairių FCM kampanijų.

FCM palaiko du tipus:

  • Pranešimas s. Kliento programa elgsis skirtingai, priklausomai nuo to, ar ji yra fone, ar priešakyje, kai gaus FCM. Jei jūsų programa yra fone, tada „Firebase SDK“ automatiškai apdoros ir rodys ją kaip pranešimą įrenginio sistemos dėkle. Kadangi „Android“ sistema sukuria pranešimą jums, tai yra vienas iš paprasčiausių būdų, kaip siųsti tiesioginius pranešimus vartotojams. Jei jūsų programa gauna FCM, kol ji yra priešakyje, tada sistema nebus tvarkykite šį pranešimą automatiškai, palikdami jums apdoroti programos „onReceptd“ () atgalinį iškvietimą. Vėliau išnagrinėsime šią žinyną svetainėje „Priimta“ (), tačiau dabar tiesiog atminkite, kad jei jūsų programa kurį laiką bus įžangoje, tada pagal numatytuosius nustatymus ji vartotojui nebus rodoma.
  • Duomenys s. Skirtingai nuo pranešimų, duomenis galite naudoti norėdami siųsti pasirinktinius duomenų elementus kliento programai. Tačiau FCM nustato 4KB apribojimą šiems duomenims, taigi, jei jūsų naudingoji apkrova viršija 4KB, turėsite gauti papildomų duomenų naudodami „WorkManager“ arba „JobScheduler“ API.

Šioje mokymo programoje daugiausia dėmesio bus skiriama pranešimams.


O kaip su „Google Cloud Messaging“?

Jei naudojate „Google“ debesų pranešimų (GCM) serverį ir kliento API, yra keletas blogų naujienų: ši paslauga jau buvo atimta ir „Google“ planuoja išjungti „daugumą“ GCM paslaugų 2019 m. Balandžio mėn. naudodamiesi „GCM“, tada turėtumėte pradėti perkelti savo projektus į FCM dabar ir turite būti baigę migraciją iki 2019 m. balandžio mėn.

„Firebase“ pridėjimas prie „Android“ projekto

Pažiūrėkime, kaip lengva prie programos pridėti pagrindinį FCM palaikymą, o tada naudokite jį vartotojams siųsti tiesioginius pranešimus.

Kadangi FCM yra „Firebase“ paslauga, turėsite pridėti „Firebase“ prie savo programos:

  • Eikite į „Firebase“ pultą.
  • Pasirinkite „Pridėti projektą“ ir nurodykite projekto pavadinimą.
  • Perskaitykite taisykles ir nuostatas. Jei jums malonu tęsti, tada pasirinkite „Sutinku ...“, tada „Kurti projektą“.
  • Pasirinkite „Pridėti„ Firebase “prie„ Android “programos.“
  • Įveskite projekto paketo pavadinimą ir spustelėkite „Užregistruoti programą“.
  • Pasirinkite „Atsisiųsti google-services.json“.
  • „Android Studio“ nuvilkite „Google“ services.json failą į savo projekto katalogą „app“.
  • Atidarykite projekto lygio „build.gradle“ failą ir pridėkite:

„classpath com.google.gms“: „Google“ paslaugos: 4.0.1

  • Atidarykite programos lygio „build.gradle“ failą ir pridėkite „Google“ paslaugų papildinį bei „Firebase Core“ ir FCM priklausomybes:

// Pridėkite „Google“ paslaugų įskiepį // pritaikykite papildinį: com.google.gms.google-services……… priklausomybės {diegimo failasTrija (rež: libs, įtraukti:) // Įtraukti „Firebase Core“ // diegimas com.google.firebase: „firebase-core“: 16.0.1 // Pridėti FCM // įgyvendinimas com.google.firebase: „firebase“ pranešimai: 17.3.4

  • Kai būsite paraginti, sinchronizuokite pakeitimus.
  • Tada turėsite pranešti „Firebase“ pultui, kad sėkmingai įtraukėte „Firebase“ į savo projektą. Įdiekite programą į fizinį „Android“ išmanųjį telefoną ar planšetinį kompiuterį arba „Android“ virtualųjį įrenginį (AVD).
  • Grįždami „Firebase“ konsolėje pasirinkite „Vykdyti programą, kad patikrintumėte diegimą“.
  • Kai „Firebase“ aptiks jūsų programą, pamatysite „Sveikinimai“. Pasirinkite „Tęsti prie pulto“.

Pirmojo tiesioginio pranešimo siuntimas naudojant „Firebase“

Štai ir viskas! Dabar galite nusiųsti tiesioginį pranešimą savo vartotojams, ir tas pranešimas pasirodys įrenginio sistemos dėkle (tarkime, tarkime, kad jūsų programa nėra pirmame plane, kai ji pristatoma).


Kuriate FCM pranešimus naudodami pranešimų kompozitorių, kurį galite rasti naudodami „Firebase“ konsolę:

  • Įsitikinkite, kad jūsų programa įdiegta ir veikia fone ir ar jūsų įrenginyje yra aktyvus interneto ryšys.
  • „Firebase“ konsolėje kairiajame meniu pasirinkite „Debesų pranešimai“.

  • Pasirinkite „Siųsti pirmąjį“.
  • Pateikite pavadinimą ir pagrindinį tekstą, tada spustelėkite „Kitas“.

  • Atidarykite išskleidžiamąjį meniu „Pasirinkti programą“ ir iš sąrašo pasirinkite savo programą. Šiame skyriuje taip pat yra keletas išplėstinių parinkčių, kurias galite naudoti kurdami tikslinius pranešimus, atsižvelgiant į tokius veiksnius kaip programos versija, įrenginio lokalė ir paskutinis naudotojo įsitraukimas į jūsų programą. Savo testo pranešime nenaudosime nė vienos iš šių parinkčių, tačiau jei norite sužinoti, kas yra, pasirinkite „ir…“ ir ištirkite tolesnį išskleidžiamąjį meniu.

  • Baigę redaguoti šį skyrių, spustelėkite „Kitas“.
  • Darant prielaidą, kad norite tai išsiųsti nedelsdami, atidarykite išskleidžiamąjį meniu „Siųsti tinkamiems vartotojams“ ir pasirinkite „Dabar“.
  • Apatiniame dešiniajame ekrano kampe spustelėkite „Paskelbti“.
  • Patikrinkite visą informaciją kitame iššokančiame lange ir, jei jums malonu tęsti, pasirinkite „Paskelbti“.

Po kelių akimirkų visi kliento įrenginiai, kuriems taikote, turėtų gauti šį pranešimą savo sistemos dėkle.

Dažniausiai FCM pranešimai bus pristatomi nedelsiant, tačiau retkarčiais gali praeiti kelios minutės, kol a atvyks, todėl nereikia panikuoti, jei vėluojate pranešti.

Kelių tikslų nustatymas: pranešimų konversijos įvykiai

Kurdami pranešimą, paprastai turėsite omenyje tikslą - ar tai privers vartotojus sugrįžti į jūsų programą, įtikins juos įsitraukti į pirkimą programoje, ar tiesiog atidarys pranešimą.

Naudodamiesi pranešimų kompozitoriumi, galite priskirti savo pranešimui tikslą ir stebėti šio pranešimo našumą FCM ataskaitų informacijos suvestinėje.

Norėdami nustatyti tikslą, spustelėkite, kad išskleistumėte naršymo kompozitoriaus skyrių „Konversijos įvykiai“, tada atidarykite pridedamąjį išskleidžiamąjį meniu ir pasirinkite iš galimų konversijos įvykių.

Ar jūsų pranešimas buvo sėkmingas?

Išsiuntę pranešimą, galite išanalizuoti jo veikimą FCM ataskaitų informacijos suvestinėje, kuri turėtų būti įkeliama automatiškai kiekvieną kartą siunčiant naują, arba galite tiesiogiai pasiekti prietaisų skydelį.

Net jei nenustatėte jokių aiškių konversijos tikslų, vis tiek galite įvertinti, ar vartotojai veikia jūsų pranešimus, palygindami pateiktų skaičių su atidarytų skaičiumi.

Šiame sąraše taip pat galite pasirinkti bet kurį, kad grafiką pamatytumėte siuntimo, atidarymo ir konvertavimo duomenis. Jei nustatysite kokius nors konversijos tikslus, čia taip pat rasite su šiais tikslais susijusią statistiką.

Ką daryti, jei mano programa yra priešakyje?

FCM pranešimai veikia skirtingai, atsižvelgiant į kliento programos būseną.

Pagal numatytuosius nustatymus jūsų programoje nebus rodomi jokie FCM, kuriuos ji gauna, kai ji yra naujajame plane, taigi, kai atsiųsite, nėra jokios garantijos, kad jūsų vartotojai iš tikrųjų pamatyti kad.

Norėdami veikti pagal tai, ką jūsų programa gauna, kol ji yra priekinio plano, turėsite išplėsti „FirebaseMessagingService“, nepaisyti „onReceptd“ metodo ir tada nuskaityti turinį naudodami „getNotification“ arba „getData“, atsižvelgiant į tai, ar dirbate su duomenimis, pranešimais ar abiem.

Sukurkite naują „Java“ klasę pavadinimu „MyFirebaseMessagingService“ ir pridėkite:

viešosios klasės „MyFirebaseMessagingService“ išplečia „FirebaseMessagingService“ {@Oreride public void onReceptiond (Remote) {super.onReceptiond (remote);

Taip pat turėsite sukurti pranešimo objektą. Tai yra jūsų galimybė pritaikyti savo pranešimą, pavyzdžiui, pasirinkti garsą, kuris turėtų skambėti, kai tik vartotojas gaus šį pranešimą, arba pritaikyti pasirinktinio pranešimo piktogramą. Taip pat turėsite nuskaityti turinį iš duomenų ar pranešimo, pavyzdžiui:

NotificationCompat.Builder noticeBuilder = naujas NotificationCompat.Builder (tai, „channel_id“) .setContentTitle (remote.getNotification (). GetTitle ()) .setContentText (remote.getNotification (). GetBody ()) „setStyle“ (nauja NotificationCompat.BigTextStyle ()) .setSound (RingtoneManager.getDefaultUri (RingtoneManager.TYPE_NOTIFICATION)) .setSmallIcon (R.mipmap.ic_launcher) .setAutoCancel (true); NotificationManager noticeManager = ((NotificationManager) getSystemService (kontekstas.NOTIFIKACIJOS_SERVICE); noticeManager.notify (0, noticeBuilder.build ()); }}

Sukūrę savo paslaugą, nepamirškite jos įtraukti į savo manifestą:

Dabar, kiekvieną kartą, kai jūsų programa gauna FCM, kol ji yra naujajame plane, ji bus pristatyta „onReceptd ()“ tvarkytojui, o jūsų programa atliks jūsų apibrėžtą veiksmą, pvz., Paskelbia pranešimą arba atnaujins jūsų programos turinį.

Įdomesni pranešimai: nukreipimas į savo vartotojus

Iki šiol tą patį pranešimą siuntėme visam savo vartotojui, tačiau pranešimai yra žymiai patrauklesni, kai jie yra skirti konkretiems vartotojams.

Pranešimų kompozitorių galite naudoti norėdami siųsti skirtingus pranešimus į skirtingas savo vartotojo bazės dalis. Eikite pas pranešimų kompozitorių ir sukurkite savo pranešimą kaip įprasta, tačiau skiltyje „Tikslas“ spustelėkite „ir“. Tai suteikia prieigą prie naujo išskleidžiamojo meniu, kuriame yra šios parinktys:

  • Versija. Tai leidžia nukreipti arba neįtraukti į įrenginius, kuriuose veikia konkrečios programos versijos. Pvz., Galite siųsti pranešimus žmonėms, kurie naudoja nemokamą versiją, skatindami juos naujovinti į „Premium“ programos versiją.
  • Kalba. Šį nustatymą galite naudoti norėdami nukreipti arba neįtraukti skirtingų kalbų ir lokalių, kuriuos palaiko jūsų programa, pavyzdžiui, kurti pranešimus, pritaikytus skirtingoms laiko juostoms ar kalboms.
  • Vartotojo auditorija (-os). Tai leidžia jums pritaikyti arba išskirti skirtingas auditorijos dalis. Pvz., Galite naudoti šį nustatymą, kad gundytumėte žmones, kurie anksčiau pirko programoje, siūlydami jiems nuolaidą ar atkreipdami jų dėmesį į visus nuostabius produktus, kuriuos ką tik išleidote.
  • Vartotojo nuosavybė. Jei nustatėte „Firebase Analytics“, naudodamiesi vartotojo ypatybėmis turėsite prieigą prie daugybės informacijos apie savo auditoriją. Šias savybes galite naudoti kartu su FCM norėdami siųsti tikslinius pranešimus labai specifinėms savo vartotojų bazės skiltims, pavyzdžiui, 25–34 metų žmonėms, besidomintiems sportu.
  • Prognozavimas. Jei nustatėte „Firebase“ prognozavimą, galite nukreipti vartotojus pagal tai, kaip tikėtina, kad jie imsis tam tikro elgesio per kitas 7 dienas. Pvz., Jei „Prognozės“ perspėja, kad kažkas greičiausiai atsijungs nuo jūsų mobiliojo žaidimo, tuomet galite naudoti FCM, kad pakviestumėte juos dalyvauti naujame kveste arba atsiųstumėte jiems žaidimo valiutą.
  • Paskutinis programos įtraukimas. Jei vartotojas kurį laiką nepaleido jūsų programos, galite naudoti šį nustatymą, norėdami nusiųsti jiems keletą pranešimų, kad tik primintumėte apie visą puikų jūsų programos turinį.
  • Pirmiausia atidarykite. Tai leidžia siųsti pranešimus pagal tai, kai pirmą kartą vartotojas atidarė jūsų programą, pavyzdžiui, galite padėti naujiems vartotojams greičiau paspartinti, siųsdami jiems pranešimus su naudingais patarimais ir patarimais.

Taikymas vienam įrenginiui su registracijos žetonais

Jau matėme, kaip siųsti tikslinius pranešimus, atsižvelgiant į tokius veiksnius kaip vartotojo amžius, pomėgiai ir paskutinis kartas, kai jis susižadėjo su jūsų programa, tačiau jūs galite gauti net konkretesni. Šiame paskutiniame skyriuje aš jums parodysiu, kaip išsiųsti FCM pranešimą į vienišas prietaisas.

Kai vartotojas pirmą kartą paleidžia jūsų programą, FCM SDK sukuria registracijos prieigos raktą tam kliento programos egzemplioriui. Norėdami užfiksuoti šį registracijos žetoną, galite naudoti „FirebaseInstanceId.getInstance (). GetInstanceId ()“, o tada nusiųsti pranešimą į šį konkretų žetoną.

Atminkite, kad realaus pasaulio projekte jūs paprastai užfiksuojate prieigos raktą, nusiųsdami jį į savo programos serverį ir laikydami naudodami pasirinktą metodą, tačiau norėdamas padėti užtikrinti aiškumą, aš paprasčiausiai atsispausdinsiu šį žetoną „Android Studio“ „Logcat“.

Štai mano baigtas „MainActivity“:

importuoti „android.support.v7.app.AppCompatActivity“; importuoti android.os.Bundle; importuoti „android.support.annotation.NonNull“; importuoti android.util.Log; importuoti com.google.android.gms.tasks.OnCompleteListener; importuoti com.google.android.gms.tasks.Task; importuoti com.google.firebase.iid.FirebaseInstanceId; importuoti com.google.firebase.iid.InstanceIdResult; viešosios klasės „MainActivity“ išplečia „AppCompatActivity“ {privati ​​statinė galutinė eilutė TAG = "MainActivity"; @Apsaugoti negaliojantį „onCreate“ (Bundle saveInstanceState) {super.onCreate (savedInstanceState); „setContentView“ (R.layout.activity_main); „FirebaseInstanceId.getInstance“). „GetInstanceId () .addOnCompleteListener“ (nauja „OnCompleteListener“() {@Atšaukti viešą negaliojimą visiškai neužbaigus (@NonNull. Užduotis užduotis) {if (! task.isSuccessful ()) {// Atlikti // grąžinti; } // Gaukite egzemplioriaus atpažinimo ženklą // Styginių raktas = task.getResult (). GetToken (); Stygos msg = getString (R.string.fcm_token, token); Log.d (TAG, msg); }}); }}

Atidarykite failą strings.xml ir sukurkite „fcm_token“ eilutės šaltinį, į kurį nurodome „MainActivity“:

FCM prieigos raktas:% s

Dabar galite nuskaityti unikalų įrenginio prieigos raktą:

  • Įdiekite savo projektą prijungtame „Android“ įrenginyje arba AVD.
  • Atidarykite „Android Studio“ „Logcat“, pasirinkdami skirtuką „Logcat“ (kur žymeklis yra šioje ekrano kopijoje).

  • Jūsų įrenginio prieigos raktas bus išspausdintas „Logcat“ skyriuje „Derinimas“, todėl atidarykite išskleidžiamąjį meniu ir pasirinkite „Derinti“.

Atsižvelgiant į jūsų „Logcat“ informacijos kiekį, gali būti sunku pastebėti ieškomą eilutę. Jei jums sunku, tada atlikite paiešką pagal žodį „prieigos raktas“ arba pabandykite uždaryti ir iš naujo paleisti programą.

Kai gausite prieigos raktą, galėsite jį naudoti norėdami nusiųsti tiesioginį pranešimą šiam konkrečiam įrenginiui:

  • Eikite į „Firebase“ pultą ir išskleidžiamajame meniu pasirinkite savo projektą, jei to dar nepadarėte.
  • Kairiajame meniu pasirinkite „Debesų pranešimai“.
  • Spustelėkite mygtuką „Naujas pranešimas“.
  • Įveskite pavadinimą ir tekstą, kaip įprasta, bet tada spustelėkite „Testuoti įrenginyje“.

  • Nukopijuokite / įklijuokite savo prieigos raktą į lauką „Pridėti egzempliorių ...“ ir spustelėkite rodomą mažą mėlyną „+“ piktogramą.
  • Pažymėkite žymės langelį, pridedamą prie žetono.

  • Spustelėkite „Testuoti“.

Šis pranešimas bus rodomas tik tikslinio kliento įrenginyje.

Apvyniojimas

Šiame straipsnyje aš jums parodžiau, kaip siųsti „Android“ tiesioginius pranešimus, naudojant „Firebase“ žinučių siuntimą iš debesies ir kaip sukurti pranešimus, taikomus pagal skirtingas jūsų vartotojo bazės dalis.

Ar ketinate naudoti FCM savo „Android“ projektuose? Praneškite mums toliau pateiktuose komentaruose!

Šiuo metu vii išmanieji išmanieji ekranai yra labai populiarū - „Lenovo“ išmanui ekrana ir „Google Net Hub“ yra gana populiarū. Vi dėlto, jei nenorite ar jum nereikia išmaniojo ekrano, yra nauja „Goog...

„Ei,„ Google “, papaakok man itoriją.“Kai paakyite šiuo žodžiu „Google“ pagrindinio pranešėjo ar išmaniojo telefono pranešimam, „Google Aitant“ linkmai pradė trumpą paakojimą, dažniauiai kirtą padėti ...

Nauji Leidiniai