Tutorial: Mengirim pemberitahuan push ke aplikasi Xamarin.iOS menggunakan Azure Notification Hubs
Gambaran Umum
Tutorial ini menunjukkan cara menggunakan Azure Notification Hubs untuk mengirim pemberitahuan push ke aplikasi iOS. Buat aplikasi Xamarin.iOS kosong yang menerima pemberitahuan push dengan menggunakanLayanan Pemberitahuan Push Apple (APN).
Setelah selesai, Anda dapat menggunakan hub pemberitahuan Anda untuk menyiarkan pemberitahuan push ke semua perangkat yang menjalankan aplikasi Anda. Kode yang sudah selesai tersedia dalam sampel aplikasi NotificationHubs.
Dalam tutorial ini, buat/perbarui kode untuk melakukan tugas-tugas berikut:
- Membuat file permintaan penandatanganan sertifikat
- Daftarkan aplikasi Anda untuk pemberitahuan push
- Membuat profil penyebaran untuk aplikasi
- Mengonfigurasi hub pemberitahuan Anda untuk pemberitahuan push iOS
- Mengirim pengujian pemberitahuan push
Prasyarat
Langganan Azure. Jika tidak memiliki langganan Azure, buat akun Azure gratis sebelum Anda memulai.
Versi terbaru Xcode
Perangkat yang kompatibel dengan iOS 10 (atau versi yang terbaru)
Keanggotaan Program Pengembang Apple.
-
Catatan
Karena persyaratan konfigurasi untuk pemberitahuan push iOS, Anda harus menyebarkan dan menguji aplikasi contoh di perangkat iOS fisik (iPhone atau iPad), bukan di emulator iOS.
Menyelesaikan tutorial ini menjadi prasyarat untuk melakukan semua tutorial Notification Hubs lainnya untuk aplikasi Xamanin.iOS.
Membuat file permintaan penandatanganan sertifikat
Layanan Pemberitahuan Push Apple (APNs) menggunakan sertifikat untuk mengautentikasi pemberitahuan push Anda. Ikuti instruksi ini untuk membuat sertifikat push yang diperlukan untuk mengirim dan menerima pemberitahuan. Untuk informasi selengkapnya tentang konsep-konsep ini, lihat dokumentasi Layanan Pemberitahuan Push Apple resmi.
Buat file Permintaan Penandatanganan Sertifikat (CSR), yang digunakan Apple untuk menghasilkan sertifikat push yang ditandatangani.
Di Mac Anda, jalankan alat Akses Rantai Kunci. Ini dapat dibuka dari folder Utilitas atau folder Lainnya di Launchpad.
Pilih Keychain Access, perluas Asisten Sertifikat , lalu pilih Minta Sertifikat dari Otoritas Sertifikat.
Catatan
Secara default, Akses Rantai Kunci memilih item pertama dalam daftar. Ini bisa menjadi masalah jika Anda berada dalam kategori Sertifikat dan Otoritas Sertifikasi Hubungan Pengembang Seluruh Dunia Apple bukan item pertama dalam daftar. Pastikan Anda memiliki item non-kunci, atau kunci Otoritas Sertifikasi Hubungan Pengembang Seluruh Dunia Apple dipilih, sebelum membuat CSR (Permintaan Penandatanganan Sertifikat).
Pilih Alamat Email Pengguna Anda, masukkan nilai Nama Umum Anda, pastikan Anda menentukan Disimpan ke disk, lalu pilih Lanjutkan. Biarkan Alamat Email CA kosong karena tidak diperlukan.
Masukkan nama untuk file CSR di Simpan Sebagai, pilih lokasi di Di mana, lalu pilih Simpan.
Tindakan ini menyimpan file CSR di lokasi yang dipilih. Lokasi default adalah di Desktop. Ingat lokasi yang dipilih untuk file.
Selanjutnya, daftarkan aplikasi Anda dengan Apple, aktifkan pemberitahuan push, dan unggah CSR yang diekspor untuk membuat sertifikat push.
Daftarkan aplikasi Anda untuk pemberitahuan push
Untuk mengirim pemberitahuan push ke app iOS, daftarkan aplikasi Anda dengan Apple, dan juga daftarkan untuk pemberitahuan push.
Jika Anda belum mendaftarkan aplikasi, telusuri ke Portal Provisi iOS di Pusat Pengembang Apple. Masuk ke portal dengan ID Apple Anda, dan pilih Pengidentifikasi. Lalu pilih + untuk mendaftarkan aplikasi baru.
Pada layar Daftarkan Pengidentifikasi Baru, pilih tombol radio App ID. Lalu Pilih Lanjutkan.
Perbarui tiga nilai berikut untuk aplikasi baru Anda, lalu pilih Lanjutkan:
Deskripsi: Ketikkan nama deskriptif untuk aplikasi Anda.
ID Bundel: Masukkan ID Bundel formulir Nama Identifier.Product Organisasi seperti yang disebutkan dalam Panduan Distribusi Aplikasi. Nilai Pengidentifikasi Organisasi dan Nama Produk harus cocok dengan pengidentifikasi organisasi dan nama produk yang Anda gunakan saat membuat proyek Xcode. Dalam cuplikan layar berikut, nilaiNotificationHubs digunakan sebagai pengidentifikasi organisasi dan nilai GetStarted digunakan sebagai nama produk. Pastikan nilai Pengidentifikasi Bundel cocok dengan nilai dalam project Xcode Anda, sehingga Xcode menggunakan profil penerbitan yang benar.
Pemberitahuan Push: Periksa opsi Pemberitahuan Push di bagian Kapabilitas.
Tindakan ini menghasilkan ID Aplikasi Anda dan meminta Anda mengonfirmasi informasi tersebut. Pilih Lanjutkan, lalu pilih Daftar untuk mengonfirmasi ID Aplikasi baru.
Setelah Anda Mendaftar, Anda akan melihat ID Aplikasi baru sebagai item baris di halaman Sertifikat, Pengidentifikasi & Profil.
Di halaman Sertifikat, Pengidentifikasi, & Profil, di Pengidentifikasi, temukan item baris ID Aplikasi yang baru saja Anda buat, dan pilih barisnya untuk menampilkan layar Edit Konfigurasi ID Aplikasi Anda.
Membuat Sertifikat untuk Notification Hubs
Sertifikat diperlukan untuk mengaktifkan hub pemberitahuan agar berfungsi dengan APNS. Ini dapat dilakukan dengan salah satu dari dua cara:
- Membuat .p12 yang dapat diunggah langsung ke Notification Hub.
- Membuat .p8 yang dapat digunakan untuk autentikasi berbasis token (pendekatan yang lebih baru).
Opsi kedua memiliki sejumlah keuntungan (dibandingkan dengan menggunakan sertifikat) seperti yang didokumentasikan dalam autentikasi berbasis Token (HTTP/2) untuk APNS. Namun, langkah-langkah disediakan untuk kedua pendekatan.
Opsi 1: Membuat sertifikat push .p12 yang dapat diunggah langsung ke Notification Hubs
Gulir ke bawah ke opsi Pemberitahuan Push yang dicentang, lalu pilih Konfigurasikan untuk membuat sertifikat.
Jendela Sertifikat SSL layanan Pemberitahuan Push Apple muncul. Pilih tombol Buat Sertifikat di bagian Sertifikat SSL Pengembangan.
Layar Buat Sertifikat Baru ditampilkan.
Catatan
Tutorial ini menggunakan sertifikat pengembangan, yang digunakan aplikasi Anda untuk menghasilkan token perangkat yang unik. Proses yang sama digunakan saat mendaftarkan sertifikat produksi. Pastikan Anda menggunakan jenis sertifikat yang sama saat mengirim pemberitahuan.
Klik Pilih File, telusuri ke lokasi tempat Anda menyimpan file CSR dari tugas pertama, lalu klik dua kali nama sertifikat untuk memuatnya. Lalu Pilih Lanjutkan.
Setelah portal membuat sertifikat, pilih tombol Unduh. Simpan sertifikat, dan ingat lokasi penyimpanannya.
Sertifikat diunduh dan disimpan pada komputer di folder Unduhan Anda.
Catatan
Secara default, sertifikat pengembangan yang diunduh dinamai aps_development.cer.
Klik dua kali pada sertifikat push yang diunduh aps_development.cer. Tindakan ini menginstal sertifikat baru di Rantai Kunci, seperti yang diperlihatkan dalam gambar berikut:
Catatan
Meskipun nama dalam sertifikat Anda mungkin berbeda, nama tersebut akan diawali dengan Layanan Push iOS Pengembangan Apple.
Di Keychain Access, klik kanan sertifikat push baru yang Anda buat di kategori Sertifikat. Pilih Ekspor, beri nama file, pilih format .p12 lalu pilih Simpan.
Anda dapat memilih untuk melindungi sertifikat dengan kata sandi, tetapi ini opsional. Klik OK jika Anda ingin melewati pembuatan kata sandi. Catat nama file dan lokasi sertifikat .p12 yang diekspor. Sertifikat digunakan untuk mengaktifkan autentikasi dengan APNs.
Catatan
Nama dan lokasi file .p12 Anda mungkin berbeda dari apa yang digambarkan dalam tutorial ini.
OPSI 2: Membuat sertifikat .p8 yang dapat digunakan untuk autentikasi berbasis token
Catat hal-hal berikut ini:
- Awalan ID Aplikasi (ini adalah ID Tim)
- ID Bundel
Kembali ke Sertifikat, Pengidentifikasi, & Profil, klik Tombol.
Catatan
Jika Anda sudah memiliki kunci yang dikonfigurasi untuk APNS, Anda dapat menggunakan kembali sertifikat .p8 yang Anda unduh tepat setelah dibuat. Jika demikian, Anda dapat mengabaikan langkah 3 sampai 5.
Klik + tombol (atau tombol Buat tombol) untuk membuat kunci baru.
Berikan nilai Nama Kunci yang sesuai, lalu centang opsi Layanan Pemberitahuan Push Apple (APNS), lalu klik Lanjutkan, diikuti dengan Daftar di layar berikutnya.
Klik Unduh lalu pindahkan file .p8 (diawali dengan AuthKey_) ke direktori lokal yang aman, lalu klik Selesai.
Catatan
Pastikan untuk menyimpan file .p8 Anda di tempat yang aman (dan simpan cadangan). Setelah mengunduh kunci Anda, kunci tersebut tidak dapat diunduh ulang dan salinan server dihapus.
Pada Kunci, klik kunci yang baru saja Anda buat (atau kunci yang ada jika Anda telah memilih untuk menggunakannya sebagai gantinya).
Catat nilai ID Kunci.
Buka sertifikat .p8 Anda dalam aplikasi pilihan Anda yang sesuai, seperti Visual Studio Code, lalu catat nilai kuncinya. Ini adalah nilai antara -----BEGIN PRIVATE KEY----- dan -----END PRIVATE KEY----- .
-----BEGIN PRIVATE KEY----- <key_value> -----END PRIVATE KEY-----
Catatan
Ini adalah nilai token yang akan digunakan nanti untuk mengonfigurasi Notification Hub.
Di akhir langkah-langkah ini Anda sudah harus memiliki informasi berikut untuk digunakan nanti di Mengkonfigurasi hub pemberitahuan Anda dengan informasi APNs:
- ID Tim (lihat langkah 1)
- ID Bundel (lihat langkah 1)
- ID Kunci (lihat langkah 7)
- Nilai token misalnya, nilai kunci .p8 (lihat langkah 8)
Membuat profil penyebaran untuk aplikasi
Kembali ke Portal Provisi iOS, pilih Sertifikat, Pengidentifikasi, & Profil, pilih Profil dari menu kiri, lalu pilih + untuk membuat profil baru. Layar Mendaftarkan Profil Provisi Baru muncul.
Pilih Pengembangan Aplikasi iOS di Pengembangan sebagai jenis profil provisi, lalu pilih Lanjutkan.
Berikutnya, pilih ID aplikasi yang Anda buat dari daftar drop-down ID Aplikasi, lalu pilih Lanjutkan.
Di jendela Pilih sertifikat, pilih sertifikat pengembangan yang Anda gunakan untuk penandatanganan kode, dan pilih Lanjutkan. Sertifikat ini bukan sertifikat push yang Anda buat. Jika tidak ada, Anda harus membuatnya. Jika sertifikat memang ada, lewati ke langkah berikutnya. Untuk membuat sertifikat pengembangan jika sertifikat tidak ada:
- Jika Tidak ada Sertifikat yang tersedia, pilih Buat Sertifikat.
- Di bagian Perangkat Lunak, pilih Pengembangan Apple. Lalu Pilih Lanjutkan.
- Di layar Buat Sertifikat Baru, klik Pilih File.
- Telusuri ke sertifikat Permintaan Penandatanganan Sertifikat yang Anda buat sebelumnya, pilih sertifikat tersebut, lalu pilih Buka.
- Pilih Lanjutkan.
- Unduh sertifikat pengembangan, dan ingat lokasi tempat sertifikat disimpan.
Kembali ke halaman Sertifikat, Pengidentifikasi & Profil, pilih Profil dari menu sebelah kiri, lalu pilih + untuk membuat profil baru. Layar Mendaftarkan Profil Provisi Baru muncul.
Di jendela Pilih sertifikat, pilih sertifikat pengembangan yang baru saja Anda buat. Lalu Pilih Lanjutkan.
Selanjutnya, pilih perangkat yang akan digunakan untuk pengujian, dan pilih Lanjutkan.
Terakhir, pilih nama untuk profil di Nama Profil Provisi, lalu pilih Buat.
Saat profil penyebaran baru dibuat, pilih Unduh. Ingat lokasi tempat profil disimpan.
Telusuri ke lokasi profil provisi, lalu klik dua kali untuk menginstalnya di mesin pengembangan Xcode Anda.
Membuat hub pemberitahuan
Di bagian ini, Anda membuat hub pemberitahuan dan mengkonfigurasi autentikasi dengan APNs dengan menggunakan sertifikat push .p12 atau autentikasi berbasis token. Jika Anda ingin menggunakan hub pemberitahuan yang sudah Anda buat, Anda bisa langsung melangkah ke langkah 5.
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.
Mengkonfigurasikan hub pemberitahuan dengan informasi APNs
Di Notification Services, pilih Apple (APNS) lalu ikuti langkah-langkah yang sesuai berdasarkan pendekatan yang Anda pilih sebelumnya di bagian Membuat Sertifikat untuk Notification Hubs.
Catatan
Jika Anda membangun aplikasi dengan App Store atau profil distribusi Ad-Hoc, gunakan Produksi untuk Mode Aplikasi. Upaya ini akan mengizinkan perangkat Anda mengirim pemberitahuan push kepada pengguna yang membeli aplikasi Anda dari toko.
OPSI 1: Gunakan sertifikat push .p12
Pilih Sertifikat.
Pilih ikon file.
Pilih file .p12 yang Anda ekspor sebelumnya, lalu pilih Buka.
Jika diperlukan, tentukan kata sandi yang benar.
Pilih mode Kotak pasir.
Pilih Simpan.
OPSI 2: Gunakan autentikasi berbasis token
Pilih Token.
Masukkan nilai berikut yang Anda peroleh sebelumnya:
- ID Kunci
- ID Bundel
- ID tim
- Token
Pilih Kotak pasir
Pilih Simpan.
Sekarang Anda telah mengkonfigurasi hub pemberitahuan Anda dengan APNs. Anda juga memiliki string koneksi untuk mendaftarkan aplikasi Anda dan mengirim pemberitahuan push.
Menyambungkan aplikasi Anda ke hub pemberitahuan
Membuat proyek baru
Di Visual Studio, buat proyek iOS baru dan pilih templat Aplikasi Tampilan Tunggal, dan klik Berikutnya
Masukkan Pengidentifikasi Nama Aplikasi dan Organisasi Anda, lalu klik Berikutnya, lalu Buat
Dari tampilan Solusi, klik dua kali Info.plistdan di bawahIdentitas pastikan Pengidentifikasi Bundel Anda cocok dengan yang digunakan saat membuat profil penyebaran Anda. Di bawahPenandatangananpastikan bahwa akun Pengembang Anda dipilih di bawahTim, "Kelola penandatanganan secara otomatis" dipilih dan Sertifikat Penandatanganan dan Profil Penyebaran Anda dipilih secara otomatis.
Dari tampilan Solusi, klik dua kali
Entitlements.plist
dan pastikan Aktifkan Pemberitahuan Push dicentang.Menambahkan paket Azure Messaging. Dalam tampilan Solusi, klik kanan proyek dan pilihTambahkan>Tambahkan Paket NuGet. CariXamarin.Azure.NotificationHubs.iOSdan tambahkan paket ke proyek Anda.
Tambahkan file baru ke kelas Anda, beri nama
Constants.cs
dan tambahkan variabel berikut dan ganti tempat penampung literal string denganhubname
dan yangDefaultListenSharedAccessSignature
disebutkan sebelumnya.// Azure app-specific connection string and hub path public const string ListenConnectionString = "<Azure DefaultListenSharedAccess Connection String>"; public const string NotificationHubName = "<Azure Notification Hub Name>";
Dalam
AppDelegate.cs
, tambahkan pernyataan penggunaan berikut ini:using WindowsAzure.Messaging.NotificationHubs; using UserNotifications
Buat implementasi
MSNotificationHubDelegate
dari yang ada diAppDelegate.cs
:public class AzureNotificationHubListener : MSNotificationHubDelegate { public override void DidReceivePushNotification(MSNotificationHub notificationHub, MSNotificationHubMessage message) { } }
Dalam
AppDelegate.cs
, perbaruiFinishedLaunching()
untuk mencocokkan kode berikut:public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions) { // Set the Message listener MSNotificationHub.SetDelegate(new AzureNotificationHubListener()); // Start the SDK MSNotificationHub.Start(ListenConnectionString, NotificationHubName); return true; }
Dalam
AppDelegate.cs
, terapkan metodeDidReceivePushNotification
untuk kelasAzureNotificationHubListener
:public override void DidReceivePushNotification(MSNotificationHub notificationHub, MSNotificationHubMessage message) { // This sample assumes { aps: { alert: { title: "Hello", body: "World" } } } var alertTitle = message.Title ?? "Notification"; var alertBody = message.Body; var myAlert = UIAlertController.Create(alertTitle, alertBody, UIAlertControllerStyle.Alert); myAlert.AddAction(UIAlertAction.Create("OK", UIAlertActionStyle.Default, null)); UIApplication.SharedApplication.KeyWindow.RootViewController.PresentViewController(myAlert, true, null); }
Jalankan aplikasi di perangkat Anda.
Mengirim pengujian pemberitahuan push
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 Mobile Apps 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, kirim pemberitahuan siaran ke semua perangkat Android Anda yang terdaftar dengan ujung belakang. Untuk mempelajari cara mengirim pemberitahuan push ke perangkat iOS tertentu, lanjutkan ke tutorial berikut: