Tutorial: Kirim pemberitahuan push ke aplikasi Xamarin.Android menggunakan Notification Hubs
Gambaran Umum
Catatan
Untuk informasi tentang langkah-langkah penghentian dan migrasi Firebase Cloud Messaging, lihat migrasi Google Firebase Cloud Messaging.
Tutorial ini menunjukkan kepada Anda cara menggunakan Azure Notification Hubs untuk mengirim pemberitahuan push ke aplikasi Xamarin.Android. Anda membuat aplikasi Xamarin.Android kosong yang menerima pemberitahuan push dengan menggunakan Firebase Cloud Messaging (FCM). Anda menggunakan hub pemberitahuan untuk menyiarkan pemberitahuan push ke semua perangkat yang menjalankan aplikasi Anda. Kode yang sudah selesai tersedia dalam sampel aplikasi NotificationHubs.
Dalam tutorial ini, Anda akan melakukan langkah-langkah berikut:
- Membuat proyek Firebase dan mengaktifkan Firebase Cloud Messaging
- Membuat hub pemberitahuan
- Membuat aplikasi Xamarin.Android dan menghubungkannya ke hub pemberitahuan
- Mengirim pemberitahuan uji dari portal Microsoft Azure
Prasyarat
- Langganan Azure. Jika tidak memiliki langganan Azure, buat akun Azure gratis sebelum Anda memulai.
- Visual Studio dengan Xamarin di Windows atau Visual Studio untuk Mac di OS X.
- Akun Google aktif
Membuat proyek Firebase dan mengaktifkan Firebase Cloud Messaging
Masuk ke konsol Firebase. Buat projek Firebase baru jika Anda belum memilikinya.
Setelah membuat proyek, pilih Tambahkan Firebase ke aplikasi Android Anda.
Di halaman Tambahkan Firebase ke aplikasi Android Anda, lakukan langkah-langkah berikut:
Untuk nama paket Android, masukkan nama untuk paket Anda. Sebagai contoh:
tutorials.tutoria1.xamarinfcmapp
.Pilih Daftarkan aplikasi.
Pilih Unduh google-services.json. Selanjutnya simpan file ke folder proyek Anda dan pilih Berikutnya. Jika Anda belum membuat proyek Visual Studio, Anda dapat menjalankan langkah-langkah ini setelah membuat proyek.
Pilih Selanjutnya.
Pilih Lompati langkah ini.
Di konsol Firebase, pilih cog untuk proyek Anda. Pilih Pengaturan Proyek.
Jika Anda belum mengunduh file google-services.json, Anda dapat mengunduhnya di halaman ini.
Alihkan ke tab Perpesanan Cloud di bagian atas. Salin dan simpan Kunci Server untuk digunakan nanti. Anda menggunakan nilai ini untuk mengonfigurasi hub pemberitahuan Anda.
Membuat hub pemberitahuan
Masuk ke portal Azure.
Pilih Semua layanan di menu sebelah kiri.
Ketik Notification Hubs di kotak teks Layanan filter. Pilih ikon bintang di samping nama layanan untuk menambahkan layanan ke bagian FAVORITE di menu sebelah kiri. Pilih Notification Hubs.
Pada halaman Notification Hubs, pilih Tambahkan pada toolbar.
Pada tab Dasar di halaman Notification Hub, lakukan langkah berikut ini:
Di Langganan, pilih nama langganan Azure yang ingin Anda gunakan, lalu pilih grup sumber daya yang sudah ada, atau buat yang baru.
Masukkan nama unik untuk namespace baru di Detail Namespace.
Namespace berisi satu atau beberapa hub pemberitahuan, jadi ketikkan nama untuk hub di Detail Hub Pemberitahuan.
Pilih nilai dari kotak daftar drop-down Lokasi. Nilai ini menentukan lokasi tempat Anda ingin membuat hub.
Tinjau opsi Zona Ketersediaan. Jika Anda memilih wilayah yang memiliki zona ketersediaan, kotak centang dipilih secara default. Zona Ketersediaan adalah fitur berbayar, sehingga biaya tambahan ditambahkan ke tingkat Anda.
Pilih opsi Pemulihan bencana: Tidak ada, wilayah pemulihan berpasangan, atau wilayah pemulihan Fleksibel. Jika Anda memilih Wilayah pemulihan berpasangan, wilayah failover akan ditampilkan. Jika Anda memilih Wilayah pemulihan fleksibel, gunakan menu drop-down untuk memilih dari daftar wilayah pemulihan.
Pilih Buat.
Saat penyebaran selesai, pilih Buka sumber daya.
Konfigurasi pengaturan GCM untuk hub pemberitahuan
Pilih Google (GCM/FCM)/ di bagian Pengaturan di menu sebelah kiri.
Masukkan kunci server yang Anda catat dari Google Firebase Console.
Pilih Simpan pada toolbar.
Hub pemberitahuan Anda dikonfigurasi untuk bekerja dengan FCM, dan Anda memiliki string koneksi untuk mendaftarkan aplikasi Anda untuk menerima pemberitahuan dan mengirim pemberitahuan push.
Membuat aplikasi Xamarin.Android dan menghubungkannya ke hub pemberitahuan
Buat proyek Visual Studio dan tambahkan paket NuGet
Catatan
Langkah-langkah yang didokumentasikan dalam tutorial ini adalah untuk Visual Studio 2017.
Di Visual Studio, buka menu File, pilih Baru, lalu pilih Project. Di jendela Proyek Baru, lakukan langkah-langkah ini:
Perluas Terinstal, Visual C#, lalu klik Android.
Pilih Android App (Xamarin) dari daftar.
Masukkan nama untuk proyek tersebut.
Pilih lokasi untuk proyek.
Pilih OK
Pada kotak dialog Aplikasi Android Baru, pilih Aplikasi Kosong, dan pilih OK.
Di jendela Penjelajah Solusi, perluas Properti, dan klik AndroidManifest.xml . Perbarui nama paket agar sesuai dengan nama paket yang Anda masukkan saat menambahkan Firebase Cloud Messaging ke proyek Anda di Google Firebase Console.
Tetapkan versi Android target untuk proyek ke Android 10.0 dengan mengikuti langkah-langkah berikut:
- Klik kanan proyek Anda, dan pilih Properti.
- Untuk bidang Kompilasi menggunakan versi Android: (Kerangka kerja target), pilih Android 10.0.
- Pilih Ya pada kotak pesan untuk melanjutkan dengan mengubah kerangka kerja target.
Tambahkan paket NuGet yang diperlukan ke proyek dengan mengikuti langkah-langkah berikut:
Klik kanan proyek Anda, dan pilih Kelola Paket NuGet....
Beralih ke tab Terinstal, pilih Xamarin.Android.Support.Design, dan pilih Perbarui di panel kanan untuk memperbarui paket ke versi terbaru.
Beralih ke tab Telusuri. Cari Xamarin.GooglePlayServices.Base. Pilih Xamarin.GooglePlayServices.Base dalam daftar hasil. Lalu pilih Pasang.
Di jendela Manajer Paket NuGet, cari Xamarin.Firebase.Messaging. Pilih Xamarin.Firebase.Messaging di daftar hasil. Lalu pilih Pasang.
Sekarang, cari Xamarin.Azure.NotificationHubs.Android. Pilih Xamarin.Azure.NotificationHubs.Android dalam daftar hasil. Lalu pilih Pasang.
Tambahkan File JSON Layanan Google
Salin file
google-services.json
yang Anda unduh dari Google Firebase Console ke folder proyek.Tambahkan
google-services.json
ke proyek.Pilih
google-services.json
di jendela Penjelajah Solusi.Di panel Properti, atur Tindakan Bangun ke GoogleServicesJson. Jika Anda tidak melihat GoogleServicesJson, tutup Visual Studio, luncurkan kembali, buka kembali proyek, dan coba lagi.
Menyiapkan hub pemberitahuan di proyek Anda
Mendaftar dengan Firebase Cloud Messaging
Jika Anda melakukan migrasi dari Google Cloud Messaging ke Firebase, file
AndroidManifest.xml
proyek Anda mungkin berisi konfigurasi GCM yang usang, yang dapat menyebabkan duplikasi pemberitahuan. Edit file dan hapus baris berikut dalam bagian<application>
, jika ada:<receiver android:name="com.google.firebase.iid.FirebaseInstanceIdInternalReceiver" android:exported="false" /> <receiver android:name="com.google.firebase.iid.FirebaseInstanceIdReceiver" android:exported="true" android:permission="com.google.android.c2dm.permission.SEND"> <intent-filter> <action android:name="com.google.android.c2dm.intent.RECEIVE" /> <action android:name="com.google.android.c2dm.intent.REGISTRATION" /> <category android:name="${applicationId}" /> </intent-filter> </receiver>
Tambahkan pernyataan berikut sebelum elemen aplikasi.
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="android.permission.GET_ACCOUNTS"/>
Kumpulkan informasi berikut untuk aplikasi Android dan hub pemberitahuan:
- Dengarkan string koneksi: Pada dasbor di portal Microsoft Azure, pilih Tampilkan string koneksi. Salin string koneksi
DefaultListenSharedAccessSignature
untuk nilai ini. - Nama hub: Nama hub Anda dari portal Microsoft Azure. Misalnya, mynotificationhub2.
- Dengarkan string koneksi: Pada dasbor di portal Microsoft Azure, pilih Tampilkan string koneksi. Salin string koneksi
Di jendela Penjelajah Solusi, klik kanan proyek Anda, pilih Tambahkan, lalu pilih Kelas.
Buat kelas
Constants.cs
untuk proyek Xamarin Anda dan tentukan nilai konstanta berikut di kelas. Ganti tempat penampung dengan nilai Anda.public static class Constants { public const string ListenConnectionString = "<Listen connection string>"; public const string NotificationHubName = "<hub name>"; }
Tambahkan pernyataan penggunaan berikut ke
MainActivity.cs
:using WindowsAzure.Messaging.NotificationHubs;
Tambahkan properti berikut ke kelas MainActivity:
internal static readonly string CHANNEL_ID = "my_notification_channel";
Di
MainActivity.cs
, tambahkan kode berikut keOnCreate
setelahbase.OnCreate(savedInstanceState)
:// Listen for push notifications NotificationHub.SetListener(new AzureListener()); // Start the SDK NotificationHub.Start(this.Application, HubName, ConnectionString);
Tambahkan kelas yang dinamai
AzureListener
ke proyek Anda.Tambahkan pernyataan penggunaan berikut ke
AzureListener.cs
.using Android.Content; using WindowsAzure.Messaging.NotificationHubs;
Tambahkan yang berikut ini di atas deklarasi kelas Anda, dan buat kelas Anda mewarisi
Java.Lang.Object
dan mengimplementasikanINotificationListener
:public class AzureListener : Java.Lang.Object, INotificationListener
Tambahkan kode berikut di dalam kelas
AzureListener
, untuk memproses pesan yang diterima.public void OnPushNotificationReceived(Context context, INotificationMessage message) { var intent = new Intent(this, typeof(MainActivity)); intent.AddFlags(ActivityFlags.ClearTop); var pendingIntent = PendingIntent.GetActivity(this, 0, intent, PendingIntentFlags.OneShot); var notificationBuilder = new NotificationCompat.Builder(this, MainActivity.CHANNEL_ID); notificationBuilder.SetContentTitle(message.Title) .SetSmallIcon(Resource.Drawable.ic_launcher) .SetContentText(message.Body) .SetAutoCancel(true) .SetShowWhen(false) .SetContentIntent(pendingIntent); var notificationManager = NotificationManager.FromContext(this); notificationManager.Notify(0, notificationBuilder.Build()); }
Bangun proyek Anda.
Jalankan aplikasi Anda di perangkat atau emulator yang dimuat
Mengirim pemberitahuan uji dari portal Microsoft Azure
Anda dapat menguji pemberitahuan penerimaan di aplikasi Anda dengan opsi Uji Pengiriman di portal Azure. Ini mengirimkan pemberitahuan push pengujian ke perangkat Anda.
Pemberitahuan push biasanya dikirim dalam layanan ujung belakang seperti Aplikasi Seluler atau ASP.NET menggunakan pustaka yang kompatibel. Jika pustaka tidak tersedia untuk ujung belakang, Anda juga dapat menggunakan REST API secara langsung untuk mengirim pesan pemberitahuan.
Langkah berikutnya
Dalam tutorial ini, Anda akan mengirimkan pemberitahuan siaran ke semua perangkat Android Anda yang terdaftar di backend{i>.