Menghantar pemberitahuan tolak Android dengan Pemesejan Awan Firebase

Pengarang: Louise Ward
Tarikh Penciptaan: 4 Februari 2021
Tarikh Kemas Kini: 1 Julai 2024
Anonim
Menghantar pemberitahuan tolak Android dengan Pemesejan Awan Firebase - Aplikasi
Menghantar pemberitahuan tolak Android dengan Pemesejan Awan Firebase - Aplikasi

Kandungan


Walaupun ia berada di luar skop tutorial ini, anda juga boleh menggunakan FCM untuk pemberitahuan hulu, di mana FCM menerima dari aplikasi klien, atau memberitahu aplikasi anda apabila ada data baru yang tersedia untuk dimuat turun. Dengan cara ini, anda boleh memastikan komunikasi di antara pelayan aplikasi dan aplikasi klien anda berlaku hanya apabila perlu, yang jauh lebih berkesan daripada aplikasi pelanggan yang menghubungi pelayan pada jarak masa yang tetap, dengan kemungkinan tidak ada data baru yang tersedia.

Oleh kerana FCM adalah sebahagian daripada Firebase, ia juga bermain dengan baik dengan perkhidmatan Firebase yang lain. Sebaik sahaja anda menguasai keperluan FCM, anda mungkin mahu menggunakan Pengujian A / B untuk mengenal pasti pemberitahuan mana yang paling berkesan, atau menggunakan Ramalan Firebase untuk menggunakan pembelajaran mesin yang kuat untuk semua data analisis yang dihasilkan dari pelbagai kempen FCM anda.

FCM menyokong dua jenis s:


  • Pemberitahuan s. Permohonan klien akan bertindak secara berbeza bergantung pada apakah ia di latar belakang atau latar depan ketika menerima FCM. Sekiranya aplikasi anda berada di latar belakang, maka Firebase SDK akan memproses secara automatik dan memaparkannya sebagai pemberitahuan dalam dulang sistem peranti. Oleh kerana sistem Android membina pemberitahuan untuk anda, ini adalah salah satu cara paling mudah untuk menghantar pemberitahuan push kepada pengguna anda. Jika aplikasi anda menerima FCM semasa ia berada di latar depan, maka sistem itu tidak akan mengendalikan pemberitahuan ini secara automatik, meninggalkan anda untuk memproses semula panggilan balik aplikasinya diReceived (). Kami akan meneroka onReceived () kemudian dalam tutorial ini, tetapi untuk sekarang hanya sedar bahawa jika aplikasi anda menerima sementara ia berada di latar depan, maka secara lalai ini tidak akan dipaparkan kepada pengguna.
  • Data s. Tidak seperti pemberitahuan, anda boleh menggunakan data untuk menghantar elemen data tersuai kepada aplikasi klien. Walau bagaimanapun, FCM meletakkan had 4KB pada data ini, jadi jika muatan anda melebihi 4KB maka anda perlu mengambil data tambahan menggunakan WorkManager atau API JobScheduler.

Dalam tutorial ini, kami akan memberi tumpuan kepada pemberitahuan.


Bagaimana dengan Pesanan Awan Google?

Sekiranya anda menggunakan API pelayan dan klien Google Cloud Messaging (GCM), maka terdapat beberapa berita buruk: perkhidmatan ini sudah usang dan Google merancang untuk mematikan perkhidmatan "paling" GCM pada April 2019. Jika anda masih menggunakan GCM, maka anda perlu mula memindahkan projek anda ke FCM sekarang, dan mesti menyelesaikan penghijrahan anda pada April 2019.

Menambah Firebase ke projek Android anda

Mari kita lihat betapa mudahnya untuk menambah sokongan asas FCM ke aplikasi anda, dan kemudian menggunakannya untuk menghantar pemberitahuan push kepada pengguna anda.

Oleh kerana FCM adalah perkhidmatan Firebase, anda perlu menambah Firebase ke aplikasi anda:

  • Kepala ke Konsol Firebase.
  • Pilih "Tambah projek," dan berikan projek anda nama.
  • Baca terma dan syarat. Jika anda gembira untuk meneruskan, kemudian pilih "Saya terima ..." diikuti dengan "Buat projek."
  • Pilih "Tambah Firebase ke aplikasi Android anda."
  • Masukkan nama pakej projek anda, dan kemudian klik "Daftar aplikasi."
  • Pilih "Muat turun google-services.json."
  • Di Android Studio, seret dan lepaskan fail google-services.json ke dalam direktori aplikasi "aplikasinya."
  • Buka fail build.gradle tahap projek anda dan tambah yang berikut:

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

  • Buka fail build.gradle tahap aplikasi anda, dan tambahkan plugin perkhidmatan Google, ditambah dengan dependencies untuk Firebase Core dan FCM:

// Tambah plugin perkhidmatan Google // aplikasikan plugin: com.google.gms.google-services ... ... ... dependencies {implementation fileTree (dir: libs, include:) // Add Firebase Core // implementation com.google.firebase: firebase-core: 16.0.1 // Add FCM // implementation com.google.firebase: firebase-messaging: 17.3.4

  • Apabila digesa, segerakkan perubahan anda.
  • Seterusnya, anda perlu membiarkan Firebase Console mengetahui bahawa anda telah berjaya menambahkan Firebase ke projek anda. Pasang apl anda pada sama ada telefon pintar atau tablet Android fizikal, atau Peranti Maya Maya (AVD).
  • Kembali ke Konsol Firebase, pilih "Jalankan apl untuk mengesahkan pemasangan."
  • Apabila Firebase telah mengesan apl anda, anda akan melihat "Tahniah". Pilih "Teruskan ke konsol."

Menghantar pemberitahuan push pertama anda dengan Firebase

Dan itu sahaja! Anda kini boleh menghantar pemberitahuan push kepada pengguna anda, dan pemberitahuan itu akan muncul dalam dulang sistem peranti (sekarang, mari kita asumsikan aplikasi anda tidak berada di latar depan apabila dihantar).

Anda membuat pemberitahuan FCM menggunakan Notifier Composer, yang boleh didapati melalui Konsol Firebase:

  • Pastikan apl anda dipasang dan berjalan di latar belakang, dan peranti anda mempunyai sambungan Internet yang aktif.
  • Dalam Firebase Console, pilih "Pemesejan Awan" dari menu sebelah kiri.

  • Pilih "Hantar pertama kali."
  • Berikan judul dan beberapa teks tubuh, kemudian klik "Seterusnya."

  • Buka menu tarik turun "Pilih aplikasi", dan pilih aplikasi anda dari senarai. Bahagian ini juga termasuk beberapa pilihan lanjutan yang boleh anda gunakan untuk membuat pemberitahuan yang disasarkan, berdasarkan faktor seperti versi aplikasi, locale peranti, dan kali terakhir pengguna terlibat dengan aplikasi anda. Kami tidak akan menggunakan mana-mana pilihan dalam pemberitahuan ujian kami, tetapi jika anda mahu melihat apa yang tersedia, kemudian pilih "dan ..." dan meneroka jatuh turun seterusnya.

  • Sebaik sahaja anda selesai mengedit bahagian ini, klik "Seterusnya."
  • Dengan andaian anda ingin menghantarnya dengan serta-merta, buka dropdown "Hantar kepada pengguna yang layak" dan pilih "Sekarang."
  • Di sebelah kanan bawah skrin, klik "Terbitkan."
  • Semak semua maklumat dalam pop timbul berikutnya, dan jika anda gembira untuk meneruskan kemudian pilih "Terbitkan."

Selepas beberapa saat, semua peranti klien yang anda sasarkan harus menerima pemberitahuan ini dalam dulang sistem mereka.

Kebanyakan masa, pemberitahuan FCM akan dihantar dengan serta-merta, tetapi kadang-kadang mungkin mengambil masa beberapa minit untuk tiba, jadi jangan panik jika pemberitahuan anda tertunda.

Menetapkan beberapa matlamat: Acara penukaran pemberitahuan

Apabila membuat pemberitahuan, anda biasanya akan mempunyai matlamat dalam minda - sama ada pengguna yang memandu kembali ke apl anda, meyakinkan mereka untuk membuat percikan pembelian dalam apl atau hanya membuka pemberitahuan anda.

Anda boleh menetapkan matlamat pemberitahuan anda, menggunakan Pengarang Pemberitahuan, dan kemudian menjejaki prestasi pemberitahuan dalam papan pemuka laporan FCM.

Untuk menetapkan matlamat, klik untuk memperluaskan bahagian "Acara penukaran" Komposer Navigasi, kemudian buka dropdown yang disertakan dan pilih dari acara penukaran yang tersedia.

Adakah pemberitahuan anda berjaya?

Selepas menghantar pemberitahuan, anda boleh menganalisis prestasinya dalam papan pemuka laporan FCM, yang harus dimuatkan secara automatik setiap kali anda menghantar yang baharu, atau anda boleh mengakses papan pemuka secara langsung.

Walaupun anda tidak menetapkan matlamat penukaran yang jelas, anda masih dapat mengukur sama ada pengguna bertindak pada notifikasi anda, dengan membandingkan bilangan s yang disampaikan, kepada bilangan s dibuka.

Anda juga boleh memilih mana-mana dalam senarai ini, untuk melihat data penghantaran, buka dan penukaran sebagai graf. Jika anda menetapkan sebarang matlamat penukaran, maka ini juga di mana anda akan mencari statistik yang berkaitan dengan matlamat tersebut.

Bagaimana jika aplikasi saya berada di latar depan?

Pemberitahuan FCM berkelakuan berbeza bergantung pada keadaan aplikasi klien.

Secara lalai, aplikasi anda tidak akan memaparkan mana-mana FCM yang diterima semasa ia berada di latar depan, jadi apabila anda menghantar tidak ada jaminan pengguna anda akan benar-benar lihat itu.

Untuk bertindak pada aplikasi yang anda terima semasa berada di latar depan, anda perlu memanjangkan FirebaseMessagingService, mengatasi kaedah onReceived, dan kemudian dapatkan kandungan menggunakan either getNotification atau getData, bergantung kepada sama ada anda bekerja dengan data atau pemberitahuan, atau kedua-duanya.

Buat kelas Java baru bernama "MyFirebaseMessagingService" dan kemudian tambah yang berikut:

kelas awam MyFirebaseMessagingService meluaskan FirebaseMessagingService {@Override public void onReceived (Remote) {super.onReceived (remote);

Anda juga perlu membuat objek pemberitahuan. Ini adalah peluang anda untuk menyesuaikan pemberitahuan anda, sebagai contoh memilih bunyi yang harus dimainkan apabila pengguna menerima pemberitahuan ini, atau menggunakan ikon pemberitahuan tersuai. Anda juga perlu mengambil kandungan dari data atau pemberitahuan, contohnya:

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

Sebaik sahaja anda telah mencipta perkhidmatan anda, jangan lupa tambahkannya ke Manifes anda:

Kini, setiap kali aplikasi anda menerima FCM semasa ia berada di latar depan, ia akan dihantar kepada pengendali yang diterima () dan aplikasinya akan mengambil tindakan yang ditakrifkan oleh anda, seperti menghantar pemberitahuan atau mengemas kini kandungan aplikasi anda.

Pemberitahuan lebih menarik: Menyasarkan pengguna anda

Sehingga kini, kami telah menghantar pemberitahuan yang sama kepada keseluruhan pangkalan pengguna kami, tetapi pemberitahuan adalah jauh lebih menarik apabila mereka disasarkan kepada pengguna tertentu.

Anda boleh menggunakan Pengarang Pemberitahuan untuk menghantar pemberitahuan yang berbeza, ke bahagian yang berlainan dari pangkalan pengguna anda. Sambungkan ke Komposer Pemberitahuan dan buat pemberitahuan anda sebagai normal, tetapi dalam bahagian "Sasaran", klik "dan." Ini memberi anda akses kepada dropdown baru, mengandungi pilihan berikut:

  • Versi. Ini membolehkan anda menargetkan, atau mengecualikan, peranti yang menjalankan versi khusus permohonan anda. Sebagai contoh, anda mungkin menghantar pemberitahuan kepada orang yang menjalankan versi per a, menggalakkan mereka menaik taraf ke versi Premium aplikasi anda.
  • Bahasa. Anda boleh menggunakan tetapan ini untuk menyasarkan atau mengecualikan bahasa dan tempatan yang berbeza yang menyokong aplikasi anda, seperti membuat pemberitahuan yang disesuaikan untuk zon waktu atau bahasa yang berbeza.
  • Penonton pengguna. Ini membolehkan anda menyasarkan, atau mengecualikan bahagian yang berbeza dari khalayak anda. Sebagai contoh, anda boleh menggunakan tetapan ini untuk menggoda orang yang mempunyai sejarah membuat pembelian dalam aplikasinya, dengan menawarkan mereka diskaun atau menarik perhatian mereka kepada semua produk dalam apl baharu yang menakjubkan yang baru sahaja anda keluarkan.
  • Harta pengguna. Jika anda telah memasang Analytics Firebase, maka anda akan mempunyai akses kepada pelbagai maklumat mengenai khalayak anda, melalui sifat pengguna. Anda boleh menggunakan sifat-sifat ini dalam gabungan dengan FCM, untuk menghantar notis yang disasarkan kepada bahagian yang sangat khusus bagi pangkalan pengguna anda, seperti orang dalam lingkungan usia 25-34 yang berminat dalam sukan.
  • Ramalan. Jika anda telah menetapkan Ramalan Firebase, maka anda dapat menargetkan pengguna berdasarkan seberapa mungkin mereka terlibat dalam tingkah laku tertentu selama 7 hari ke depan. Sebagai contoh, jika Ramalan memberi amaran bahawa seseorang mungkin akan melepaskan diri dari permainan mudah alih anda, maka anda boleh menggunakan FCM untuk menjemput mereka untuk mengambil bahagian dalam usaha baru, atau menghantar mereka beberapa mata wang dalam permainan.
  • Penglibatan apl terakhir. Sekiranya pengguna tidak melancarkan aplikasi anda dalam seketika, maka anda boleh menggunakan tetapan ini untuk menghantar beberapa pemberitahuan kepada mereka, hanya untuk mengingatkan mereka tentang semua kandungan hebat yang ditawarkan oleh aplikasinya.
  • Pertama kali dibuka. Ini membolehkan anda menghantar pemberitahuan berdasarkan pada kali pertama pengguna membuka aplikasi anda, contohnya anda mungkin membantu pengguna baru bangun dengan mempercepatkan dengan menghantar pemberitahuan yang mengandungi petua dan nasihat yang berguna.

Menyasarkan satu peranti dengan token pendaftaran

Kami telah melihat bagaimana untuk menghantar pemberitahuan yang disasarkan berdasarkan faktor-faktor seperti umur pengguna, minat, dan kali terakhir mereka terlibat dengan aplikasi anda, tetapi anda boleh dapatkan juga lebih spesifik. Di bahagian terakhir ini, saya akan menunjukkan kepada anda bagaimana untuk menghantar pemberitahuan FCM kepada a tunggal peranti.

Apabila pengguna melancarkan aplikasi anda buat kali pertama, FCM SDK menghasilkan token pendaftaran untuk contoh aplikasi klien itu. Anda boleh menggunakan FirebaseInstanceId.getInstance (). GetInstanceId () untuk menangkap token pendaftaran ini, dan kemudian menghantar pemberitahuan kepada token khusus ini.

Ambil perhatian bahawa dalam projek dunia sebenar, anda biasanya menangkap token dengan menghantarnya ke pelayan aplikasi anda dan menyimpannya menggunakan kaedah pilihan anda, tetapi untuk membantu menjaga perkara-perkara yang mudah saya hanya akan mencetak token ini kepada Android Studio's Logcat.

Inilah MainActivity selesai saya:

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; MainActivity kelas awam memanjangkan AppCompatActivity {private static String akhir TAG = "MainActivity"; @Override dilindungi tidak sah onCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceState); setContentView (R.layout.activity_main); FirebaseInstanceId.getInstance (). GetInstanceId () .addOnCompleteListener (OnCompleteListener baru() {@Override public void onComplete (@NonNull Task tugas) {if (! task.is Successful ()) {// To do // return; } // Dapatkan Token Instance // Token token = task.getResult (). GetToken (); String msg = getString (R.string.fcm_token, token); Log.d (TAG, msg); }}); }}

Buka fail strings.xml anda dan buat sumber rentetan "fcm_token" yang kami rujuk di MainActivity kami:

Token FCM:% s

Anda kini boleh mendapatkan token unik peranti anda:

  • Pasang projek anda pada peranti Android yang disambungkan atau AVD.
  • Buka Android Logcat Studio, dengan memilih tab "Logcat" (di mana kursor berada dalam tangkapan skrin berikut).

  • Token peranti anda akan dicetak ke bahagian "Debug" Logcat, jadi buka dropdown dan pilih "Debug."

Bergantung kepada jumlah maklumat dalam Logcat anda, mungkin sukar untuk melihat garis yang anda cari. Sekiranya anda sedang bergelut, jalankan carian untuk perkataan "token," atau cuba tutup dan kemudian melancarkan semula aplikasinya.

Sebaik sahaja anda telah menerima tanda itu, anda boleh menggunakannya untuk menghantar pemberitahuan push ke peranti tertentu ini:

  • Kepala ke Konsol Firebase dan pilih projek anda dari menu lungsur, jika anda belum melakukannya.
  • Pilih "Pemesejan Awan" dari menu kiri.
  • Klik butang "Pemberitahuan baru".
  • Masukkan tajuk dan teks, seperti biasa, tetapi kemudian klik "Uji pada peranti."

  • Salin / tampal token anda ke medan "Tambah contoh ...", dan kemudian klik ikon biru "+ 'yang muncul.
  • Pilih kotak semak yang menyertakan token.

  • Klik "Ujian."

Pemberitahuan ini kini akan muncul pada peranti pelanggan sasaran sahaja.

Mengakhiri

Dalam artikel ini, saya menunjukkan kepada anda bagaimana untuk menghantar pemberitahuan push Android, menggunakan Pemesejan Awan Firebase, dan cara membuat pemberitahuan yang menargetkan bahagian yang berlainan dari pangkalan pengguna anda.

Adakah anda akan menggunakan FCM dalam projek Android anda sendiri? Beritahu kami dalam komen di bawah!

ony Xperia 5 membawa beberapa ciri yang menentukan utama perdana Xperia 1 - eperti nibah apek paparan 21: 9, kualiti audio yang mengagumkan, pemproe yang tinggi, dan banyak lagi - kepada pakej yang le...

Aplikai oundboard adalah aplikai kecil yang menyeronokkan. Mereka menyediakan ekumpulan bait bunyi kecil yang konyol pada aat ia memerlukannya. Mereka bukan aplikai yang angat berguna. Bagaimanapun, ...

Popular