Mengirim pemberitahuan push Android dengan Firebase Cloud Messaging

Pengarang: Louise Ward
Tanggal Pembuatan: 4 Februari 2021
Tanggal Pembaruan: 1 Juli 2024
Anonim
Android Notifications with Firebase Cloud Messaging
Video: Android Notifications with Firebase Cloud Messaging

Isi


Meskipun ini di luar cakupan tutorial ini, Anda juga dapat menggunakan FCM untuk notifikasi hulu, di mana FCM menerima dari aplikasi klien, atau untuk memberi tahu aplikasi Anda ketika ada data baru yang tersedia untuk diunduh. Dengan cara ini, Anda dapat memastikan komunikasi antara server aplikasi dan aplikasi klien hanya terjadi jika diperlukan, yang jauh lebih efisien daripada aplikasi klien yang menghubungi server secara berkala, jika ada kemungkinan ada beberapa data baru yang tersedia.

Karena FCM adalah bagian dari Firebase, ia juga berfungsi baik dengan layanan Firebase lainnya. Setelah menguasai esensi FCM, Anda mungkin ingin menggunakan Pengujian A / B untuk mengidentifikasi notifikasi mana yang paling efektif, atau menggunakan Firebase Predictions untuk menerapkan pembelajaran mesin yang kuat untuk semua data analitik yang dihasilkan dari berbagai kampanye FCM Anda.

FCM mendukung dua jenis s:

  • Notifikasi s. Aplikasi klien akan berperilaku berbeda tergantung pada apakah itu di latar belakang atau latar depan ketika menerima FCM. Jika aplikasi Anda ada di latar belakang, maka Firebase SDK akan secara otomatis memproses dan menampilkannya sebagai pemberitahuan di baki sistem perangkat. Karena sistem Android membuat notifikasi untuk Anda, ini adalah salah satu cara termudah untuk mengirim notifikasi push ke pengguna Anda. Jika aplikasi Anda menerima FCM saat berada di latar depan, maka sistem biasa menangani pemberitahuan ini secara otomatis, membuat Anda memproses panggilan balik onReceived () aplikasi Anda. Kami akan menjelajahi onReceived () nanti dalam tutorial ini, tetapi untuk saat ini hanya perlu diketahui bahwa jika aplikasi Anda menerima sementara waktu di latar depan, maka secara default ini tidak akan ditampilkan kepada pengguna.
  • Data s. Tidak seperti notifikasi, Anda dapat menggunakan data untuk mengirim elemen data khusus ke aplikasi klien. Namun, FCM tidak menetapkan batas 4KB pada data ini, jadi jika payload Anda melebihi 4KB maka Anda harus mengambil data tambahan menggunakan WorkManager atau API JobScheduler.

Dalam tutorial ini, kami akan fokus pada pemberitahuan.


Bagaimana dengan Google Cloud Messaging?

Jika Anda menggunakan server dan klien API Google Cloud Messaging (GCM), maka ada beberapa kabar buruk: layanan ini sudah usang dan Google berencana untuk mematikan layanan "sebagian besar" GCM pada bulan April 2019. Jika Anda masih menggunakan GCM, maka Anda harus mulai memigrasi proyek Anda ke FCM sekarang, dan harus menyelesaikan migrasi Anda pada April 2019.

Menambahkan Firebase ke proyek Android Anda

Mari kita lihat betapa mudahnya menambahkan dukungan FCM dasar ke aplikasi Anda, dan kemudian menggunakannya untuk mengirim pemberitahuan push ke pengguna Anda.

Karena FCM adalah layanan Firebase, Anda harus menambahkan Firebase ke aplikasi Anda:

  • Pergilah ke Firebase Console.
  • Pilih "Tambah proyek," dan beri nama proyek Anda.
  • Baca syarat dan ketentuannya. Jika Anda senang melanjutkan, maka pilih "Saya menerima ..." diikuti oleh "Buat proyek."
  • Pilih "Tambahkan Firebase ke aplikasi Android Anda."
  • Masukkan nama paket proyek Anda, dan kemudian klik "Daftar aplikasi."
  • Pilih "Unduh google-services.json."
  • Di Android Studio, seret dan letakkan file google-services.json ke direktori "aplikasi" proyek Anda.
  • Buka file build.gradle tingkat proyek Anda dan tambahkan berikut ini:

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

  • Buka file build.gradle tingkat aplikasi Anda, dan tambahkan plugin layanan Google, plus dependensi untuk Firebase Core dan FCM:

// Tambahkan plugin layanan Google // terapkan plugin: com.google.gms.google-services ... ...… dependensi {fileTree implementasi (dir: libs, sertakan:) // Tambahkan Firebase Core // implementasi com.google.firebase: firebase-core: 16.0.1 // Tambahkan FCM // implementasi com.google.firebase: firebase-messaging: 17.3.4

  • Saat diminta, sinkronkan perubahan Anda.
  • Selanjutnya, Anda harus memberi tahu Firebase Console bahwa Anda telah berhasil menambahkan Firebase ke proyek Anda. Instal aplikasi Anda di smartphone atau tablet Android fisik, atau Android Virtual Device (AVD).
  • Kembali ke Firebase Console, pilih "Jalankan aplikasi untuk memverifikasi pemasangan."
  • Setelah Firebase mendeteksi aplikasi Anda, Anda akan melihat "Selamat". Pilih "Lanjutkan ke konsol."

Mengirim pemberitahuan push pertama Anda dengan Firebase

Dan itu dia! Anda sekarang dapat mengirim pemberitahuan push ke pengguna Anda, dan pemberitahuan itu akan muncul di baki sistem perangkat (untuk saat ini, mari kita asumsikan aplikasi Anda tidak ada di latar depan ketika dikirimkan).


Anda membuat notifikasi FCM menggunakan Notification Composer, yang tersedia melalui Firebase Console:

  • Pastikan aplikasi Anda diinstal dan berjalan di latar belakang, dan perangkat Anda memiliki koneksi Internet aktif.
  • Di Firebase Console, pilih "Cloud Messaging" dari menu sebelah kiri.

  • Pilih "Kirim dulu Anda."
  • Berikan judul dan beberapa teks isi, lalu klik "Berikutnya."

  • Buka dropdown “Select app”, dan pilih aplikasi Anda dari daftar. Bagian ini juga mencakup beberapa opsi lanjutan yang dapat Anda gunakan untuk membuat notifikasi yang ditargetkan, berdasarkan faktor-faktor seperti versi aplikasi, lokal perangkat, dan terakhir kali pengguna terlibat dengan aplikasi Anda. Kami tidak akan menggunakan salah satu opsi ini dalam pemberitahuan pengujian kami, tetapi jika Anda ingin melihat apa yang tersedia, maka pilih "dan ..." dan jelajahi dropdown berikutnya.

  • Setelah selesai mengedit bagian ini, klik "Selanjutnya."
  • Dengan asumsi Anda ingin mengirim ini segera, buka tarik turun "Kirim ke pengguna yang memenuhi syarat" dan pilih "Sekarang."
  • Di kanan bawah layar, klik "Terbitkan."
  • Periksa semua informasi di sembulan berikutnya, dan jika Anda senang melanjutkan maka pilih "Terbitkan."

Setelah beberapa saat, semua perangkat klien yang Anda targetkan akan menerima pemberitahuan ini di baki sistem mereka.

Sebagian besar waktu, notifikasi FCM akan dikirim segera, tetapi kadang-kadang dibutuhkan beberapa menit untuk sampai, jadi jangan panik jika notifikasi Anda tertunda.

Menetapkan beberapa sasaran: Pemberitahuan acara konversi

Saat membuat pemberitahuan, Anda biasanya memiliki tujuan - apakah itu mendorong pengguna kembali ke aplikasi Anda, meyakinkan mereka untuk melakukan pembelian dalam aplikasi, atau hanya membuka notifikasi Anda.

Anda dapat menetapkan sasaran untuk pemberitahuan Anda, menggunakan Notification Composer, dan kemudian melacak kinerja pemberitahuan itu di dasbor pelaporan FCM.

Untuk menetapkan sasaran, klik untuk memperluas bagian "Acara Konversi" Komposer Navigasi, lalu buka dropdown yang menyertainya dan pilih dari acara konversi yang tersedia.

Apakah pemberitahuan Anda berhasil?

Setelah mengirim pemberitahuan, Anda dapat menganalisis kinerjanya di dasbor pelaporan FCM, yang akan dimuat secara otomatis setiap kali Anda mengirim yang baru, atau Anda dapat mengakses dasbor secara langsung.

Bahkan jika Anda tidak menetapkan tujuan konversi eksplisit, Anda masih dapat mengukur apakah pengguna bertindak atas pemberitahuan Anda, dengan membandingkan jumlah yang dikirimkan, dengan jumlah yang dibuka.

Anda juga dapat memilih apa saja dalam daftar ini, untuk melihat data kirim, buka, dan konversi sebagai grafik. Jika Anda menetapkan sasaran konversi, maka di sinilah Anda akan menemukan statistik yang berkaitan dengan sasaran tersebut.

Bagaimana jika aplikasi saya ada di latar depan?

Notifikasi FCM berperilaku berbeda tergantung pada kondisi aplikasi klien.

Secara default, aplikasi Anda tidak akan menampilkan FCM apa pun yang diterima saat FCM berada di latar depan, jadi ketika Anda mengirim tidak ada jaminan, pengguna Anda akan benar-benar Lihat itu

Untuk bertindak berdasarkan aplikasi yang Anda terima saat aplikasi latar depan, Anda harus memperluas FirebaseMessagingService, mengganti metode onReceived, dan kemudian mengambil konten menggunakan getNotification atau getData, tergantung pada apakah Anda bekerja dengan data atau pemberitahuan, atau keduanya.

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

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

Anda juga harus membuat objek pemberitahuan. Ini adalah kesempatan Anda untuk menyesuaikan notifikasi Anda, misalnya memilih suara yang seharusnya diputar setiap kali pengguna menerima notifikasi ini, atau menerapkan ikon notifikasi khusus. Anda juga harus mengambil konten dari data atau pemberitahuan, misalnya:

NotificationCompat.Builder notificationBuilder = NotificationCompat.Builder baru (ini, "channel_id") .setContentTitle (remote.getNotification (). GetTitle ()). GetCitle () setStyle (NotificationCompat.BigTextStyle ()) baru .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 ()); }}

Setelah membuat layanan, jangan lupa menambahkannya ke Manifest Anda:

Sekarang, setiap kali aplikasi Anda menerima FCM saat berada di latar depan, itu akan dikirimkan ke penangan onReceived () dan aplikasi Anda kemudian akan mengambil tindakan yang ditentukan oleh Anda, seperti memposting pemberitahuan atau memperbarui konten aplikasi Anda.

Notifikasi yang lebih menarik: Menargetkan pengguna Anda

Sampai sekarang, kami telah mengirimkan notifikasi yang sama ke seluruh basis pengguna kami, tetapi notifikasi jauh lebih menarik ketika mereka ditargetkan pada pengguna tertentu.

Anda dapat menggunakan Notification Composer untuk mengirim notifikasi berbeda, ke berbagai bagian basis pengguna Anda. Buka Komposer Pemberitahuan dan buat pemberitahuan Anda seperti biasa, tetapi di bagian "Target", klik "dan." Ini memberi Anda akses ke dropdown baru, yang berisi opsi berikut:

  • Versi. Ini memungkinkan Anda untuk menargetkan, atau mengecualikan, perangkat yang menjalankan versi spesifik aplikasi Anda. Misalnya, Anda dapat mengirim pemberitahuan kepada orang-orang yang menjalankan versi gratis, mendorong mereka untuk meningkatkan ke versi Premium aplikasi Anda.
  • Bahasa. Anda dapat menggunakan pengaturan ini untuk menargetkan atau mengecualikan berbagai bahasa dan lokal yang didukung aplikasi Anda, seperti membuat pemberitahuan yang dirancang untuk zona waktu atau bahasa yang berbeda.
  • Pemirsa pengguna. Ini memungkinkan Anda menargetkan, atau mengecualikan berbagai bagian audiens Anda. Misalnya, Anda dapat menggunakan pengaturan ini untuk menggoda orang yang memiliki riwayat melakukan pembelian dalam aplikasi, dengan menawarkan mereka diskon atau menarik perhatian mereka ke semua produk dalam aplikasi luar biasa yang baru saja Anda lepaskan.
  • Properti pengguna. Jika Anda menyiapkan Firebase Analytics, maka Anda akan memiliki akses ke berbagai informasi tentang audiens Anda, melalui properti pengguna. Anda dapat menggunakan properti ini dalam kombinasi dengan FCM, untuk mengirim pemberitahuan yang ditargetkan ke bagian yang sangat spesifik dari basis pengguna Anda, seperti orang-orang dalam rentang usia 25-34 yang tertarik pada olahraga.
  • Ramalan. Jika Anda menyiapkan Firebase Predictions, maka Anda dapat menargetkan pengguna berdasarkan seberapa besar kemungkinan mereka terlibat dalam perilaku tertentu selama 7 hari ke depan. Misalnya, jika Prediksi memperingatkan bahwa seseorang kemungkinan akan keluar dari game mobile Anda, maka Anda dapat menggunakan FCM untuk mengundang mereka untuk mengambil bagian dalam pencarian baru, atau mengirimi mereka beberapa mata uang dalam game.
  • Keterlibatan aplikasi terakhir. Jika pengguna belum meluncurkan aplikasi Anda dalam beberapa saat, maka Anda dapat menggunakan pengaturan ini untuk mengirimi mereka beberapa pemberitahuan, hanya untuk mengingatkan mereka tentang semua konten hebat yang ditawarkan aplikasi Anda.
  • Pertama terbuka. Ini memungkinkan Anda mengirim pemberitahuan berdasarkan pertama kali pengguna membuka aplikasi Anda, misalnya Anda dapat membantu pengguna baru mempercepat dengan mengirimkan pemberitahuan yang berisi tips dan saran bermanfaat.

Menargetkan satu perangkat dengan token pendaftaran

Kami telah melihat cara mengirim pemberitahuan yang ditargetkan berdasarkan faktor-faktor seperti usia pengguna, minat, dan terakhir kali mereka terlibat dengan aplikasi Anda, tetapi Anda dapat membalas dendam lebih spesifik. Di bagian akhir ini, saya akan menunjukkan kepada Anda cara mengirim notifikasi FCM ke a tunggal alat.

Ketika pengguna meluncurkan aplikasi Anda untuk pertama kalinya, FCM SDK membuat token pendaftaran untuk instance aplikasi klien itu. Anda dapat menggunakan FirebaseInstanceId.getInstance (). GetInstanceId () untuk menangkap token pendaftaran ini, dan kemudian mengirim pemberitahuan ke token khusus ini.

Perhatikan bahwa dalam proyek dunia nyata, Anda biasanya menangkap token dengan mengirimkannya ke server aplikasi Anda dan menyimpannya menggunakan metode pilihan Anda, tetapi untuk membantu menjaga semuanya tetap mudah, saya hanya akan mencetak token ini ke Logcat Android Studio.

Inilah MainActivity saya yang lengkap:

impor android.support.v7.app.AppCompatActivity; impor android.os.Bundle; impor android.support.annotation.NonNull; impor 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 publik memperluas AppCompatActivity {private static final String TAG = "MainActivity"; @Override void onCreate yang dilindungi (Bundle saverInstanceState) {super.onCreate (saverInstanceState); setContentView (R.layout.activity_main); FirebaseInstanceId.getInstance (). GetInstanceId () .addOnCompleteListener (OnCompleteListener baru)() {@Override public void onComplete (@NonNull Task task) {if (! task.isSuccessful ()) {// To do // kembali; } // Dapatkan token ID Instance // String token = task.getResult (). GetToken (); String msg = getString (R.string.fcm_token, token); Log.d (TAG, msg); }}); }}

Buka file strings.xml Anda dan buat sumber daya string “fcm_token” yang kami rujuk dalam MainActivity kami:

Token FCM:% s

Anda sekarang dapat mengambil token unik perangkat Anda:

  • Instal proyek Anda di perangkat Android yang terhubung, atau AVD.
  • Buka Logcat Android Studio, dengan memilih tab "Logcat" (di mana kursor diposisikan pada tangkapan layar berikut).

  • Token perangkat Anda akan dicetak ke bagian "Debug" dari Logcat, jadi buka dropdown dan pilih "Debug."

Bergantung pada jumlah informasi dalam Logcat Anda, mungkin sulit untuk menemukan garis yang Anda cari. Jika Anda kesulitan, jalankan pencarian untuk kata "token," atau coba tutup dan kemudian jalankan kembali aplikasi.

Setelah mengambil token, Anda dapat menggunakannya untuk mengirim pemberitahuan push ke perangkat khusus ini:

  • Pergilah ke Firebase Console dan pilih proyek Anda dari menu dropdown, jika Anda belum melakukannya.
  • Pilih "Cloud Messaging" dari menu sebelah kiri.
  • Klik tombol "Pemberitahuan baru".
  • Masukkan judul dan teks Anda, seperti biasa, tetapi kemudian klik "Tes pada perangkat."

  • Salin / tempel token Anda ke bidang “Add an instance…”, lalu klik ikon “+ blue biru kecil yang muncul.
  • Pilih kotak centang token yang menyertai.

  • Klik "Uji."

Pemberitahuan ini sekarang hanya akan muncul di perangkat klien yang ditargetkan.

Membungkus

Dalam artikel ini, saya menunjukkan kepada Anda cara mengirim notifikasi push Android, menggunakan Firebase Cloud Messaging, dan cara membuat notifikasi yang menargetkan berbagai bagian basis pengguna Anda.

Apakah Anda akan menggunakan FCM di proyek Android Anda sendiri? Beri tahu kami di komentar di bawah!

Google tadia Controller ekarang teredia untuk pre-order dengan endirinya. ebelumnya, itu hanya teredia jika Anda membeli bundel Edii Pendiri tadia.eperti halnya Edii Pendiri, tadia Controller akan dik...

udah beberapa bulan ejak Huawei mengumumkan Watch GT, tetapi orang-orang di A ekarang dapat mengambil jam tangan pintar terbaru peruahaan untuk atu en di bawah dua Benjamin....

Artikel Yang Menarik