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.

  • Visual Studio untuk Mac

    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.

  1. Di Mac Anda, jalankan alat Akses Rantai Kunci. Ini dapat dibuka dari folder Utilitas atau folder Lainnya di Launchpad.

  2. Pilih Keychain Access, perluas Asisten Sertifikat , lalu pilih Minta Sertifikat dari Otoritas Sertifikat.

    Use Keychain Access to request a new certificate

    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).

  3. 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.

    Required certificate information

  4. Masukkan nama untuk file CSR di Simpan Sebagai, pilih lokasi di Di mana, lalu pilih Simpan.

    Choose a file name for the certificate

    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.

  1. 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.

    iOS Provisioning Portal App IDs page

  2. Pada layar Daftarkan Pengidentifikasi Baru, pilih tombol radio App ID. Lalu Pilih Lanjutkan.

    iOS Provisioning Portal register new ID page

  3. 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.

      iOS Provisioning Portal register app ID page

    • Pemberitahuan Push: Periksa opsi Pemberitahuan Push di bagian Kapabilitas.

      Form to register a new App ID

      Tindakan ini menghasilkan ID Aplikasi Anda dan meminta Anda mengonfirmasi informasi tersebut. Pilih Lanjutkan, lalu pilih Daftar untuk mengonfirmasi ID Aplikasi baru.

      Confirm new App ID

      Setelah Anda Mendaftar, Anda akan melihat ID Aplikasi baru sebagai item baris di halaman Sertifikat, Pengidentifikasi & Profil.

  4. 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:

  1. Membuat .p12 yang dapat diunggah langsung ke Notification Hub.
  2. 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

  1. Gulir ke bawah ke opsi Pemberitahuan Push yang dicentang, lalu pilih Konfigurasikan untuk membuat sertifikat.

    Edit App ID page

  2. Jendela Sertifikat SSL layanan Pemberitahuan Push Apple muncul. Pilih tombol Buat Sertifikat di bagian Sertifikat SSL Pengembangan.

    Create certificate for App ID button

    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.

  3. 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.

  4. Setelah portal membuat sertifikat, pilih tombol Unduh. Simpan sertifikat, dan ingat lokasi penyimpanannya.

    Generated certificate download page

    Sertifikat diunduh dan disimpan pada komputer di folder Unduhan Anda.

    Locate certificate file in the Downloads folder

    Catatan

    Secara default, sertifikat pengembangan yang diunduh dinamai aps_development.cer.

  5. 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:

    Keychain access certificates list showing new certificate

    Catatan

    Meskipun nama dalam sertifikat Anda mungkin berbeda, nama tersebut akan diawali dengan Layanan Push iOS Pengembangan Apple.

  6. 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.

    Export certificate as p12 format

    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

  1. Catat hal-hal berikut ini:

    • Awalan ID Aplikasi (ini adalah ID Tim)
    • ID Bundel
  2. 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.

  3. Klik + tombol (atau tombol Buat tombol) untuk membuat kunci baru.

  4. Berikan nilai Nama Kunci yang sesuai, lalu centang opsi Layanan Pemberitahuan Push Apple (APNS), lalu klik Lanjutkan, diikuti dengan Daftar di layar berikutnya.

  5. 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.

  6. Pada Kunci, klik kunci yang baru saja Anda buat (atau kunci yang ada jika Anda telah memilih untuk menggunakannya sebagai gantinya).

  7. Catat nilai ID Kunci.

  8. 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

  1. 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.

  2. Pilih Pengembangan Aplikasi iOS di Pengembangan sebagai jenis profil provisi, lalu pilih Lanjutkan.

    Provisioning profile list

  3. Berikutnya, pilih ID aplikasi yang Anda buat dari daftar drop-down ID Aplikasi, lalu pilih Lanjutkan.

    Select the App ID

  4. 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:

    1. Jika Tidak ada Sertifikat yang tersedia, pilih Buat Sertifikat.
    2. Di bagian Perangkat Lunak, pilih Pengembangan Apple. Lalu Pilih Lanjutkan.
    3. Di layar Buat Sertifikat Baru, klik Pilih File.
    4. Telusuri ke sertifikat Permintaan Penandatanganan Sertifikat yang Anda buat sebelumnya, pilih sertifikat tersebut, lalu pilih Buka.
    5. Pilih Lanjutkan.
    6. Unduh sertifikat pengembangan, dan ingat lokasi tempat sertifikat disimpan.
  5. Kembali ke halaman Sertifikat, Pengidentifikasi & Profil, pilih Profil dari menu sebelah kiri, lalu pilih + untuk membuat profil baru. Layar Mendaftarkan Profil Provisi Baru muncul.

  6. Di jendela Pilih sertifikat, pilih sertifikat pengembangan yang baru saja Anda buat. Lalu Pilih Lanjutkan.

  7. Selanjutnya, pilih perangkat yang akan digunakan untuk pengujian, dan pilih Lanjutkan.

  8. Terakhir, pilih nama untuk profil di Nama Profil Provisi, lalu pilih Buat.

    Choose a provisioning profile name

  9. Saat profil penyebaran baru dibuat, pilih Unduh. Ingat lokasi tempat profil disimpan.

  10. 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.

  1. Masuk ke portal Azure.

  2. Pilih Semua layanan di menu sebelah kiri. A screenshot showing select All Services for an existing namespace.

  3. 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.

    A screenshot showing how to filter for notification hubs.

  4. Pada halaman Notification Hubs, pilih Tambahkan pada toolbar.

    A screenshot showing how to create a new notification hub.

  5. Pada tab Dasar di halaman Notification Hub, lakukan langkah berikut ini:

    1. Di Langganan, pilih nama langganan Azure yang ingin Anda gunakan, lalu pilih grup sumber daya yang sudah ada, atau buat yang baru.

    2. Masukkan nama unik untuk namespace baru di Detail Namespace.

    3. Namespace berisi satu atau beberapa hub pemberitahuan, jadi ketikkan nama untuk hub di Detail Hub Pemberitahuan.

    4. Pilih nilai dari kotak daftar drop-down Lokasi. Nilai ini menentukan lokasi tempat Anda ingin membuat hub.

      Screenshot showing notification hub details.

    5. 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.

    6. 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.

      Screenshot showing availability zone details.

    7. Pilih Buat.

  6. 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

  1. Pilih Sertifikat.

  2. Pilih ikon file.

  3. Pilih file .p12 yang Anda ekspor sebelumnya, lalu pilih Buka.

  4. Jika diperlukan, tentukan kata sandi yang benar.

  5. Pilih mode Kotak pasir.

    Configure APNs certification in Azure portal

  6. Pilih Simpan.

OPSI 2: Gunakan autentikasi berbasis token

  1. Pilih Token.

  2. Masukkan nilai berikut yang Anda peroleh sebelumnya:

    • ID Kunci
    • ID Bundel
    • ID tim
    • Token
  3. Pilih Kotak pasir

  4. 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

  1. Di Visual Studio, buat proyek iOS baru dan pilih templat Aplikasi Tampilan Tunggal, dan klik Berikutnya

    Visual Studio - Select Application Type

  2. Masukkan Pengidentifikasi Nama Aplikasi dan Organisasi Anda, lalu klik Berikutnya, lalu Buat

  3. 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.

    Visual Studio- iOS App Config

  4. Dari tampilan Solusi, klik dua kali Entitlements.plist dan pastikan Aktifkan Pemberitahuan Push dicentang.

    Visual Studio- iOS Entitlements Config

  5. Menambahkan paket Azure Messaging. Dalam tampilan Solusi, klik kanan proyek dan pilihTambahkan>Tambahkan Paket NuGet. CariXamarin.Azure.NotificationHubs.iOSdan tambahkan paket ke proyek Anda.

  6. Tambahkan file baru ke kelas Anda, beri nama Constants.cs dan tambahkan variabel berikut dan ganti tempat penampung literal string dengan hubname dan yang DefaultListenSharedAccessSignature 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>";
    
  7. DalamAppDelegate.cs, tambahkan pernyataan penggunaan berikut ini:

    using WindowsAzure.Messaging.NotificationHubs;
    using UserNotifications
    
  8. Buat implementasiMSNotificationHubDelegatedari yang ada di AppDelegate.cs:

    public class AzureNotificationHubListener : MSNotificationHubDelegate
    {
        public override void DidReceivePushNotification(MSNotificationHub notificationHub, MSNotificationHubMessage message)
        {
    
        }
    }
    
  9. DalamAppDelegate.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;
    }
    
  10. DalamAppDelegate.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);
    }
    
  11. 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.

Azure portal - Test Send

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: