Menambahkan notifikasi push ke aplikasi Xamarin.Forms Anda
Gambaran Umum
Dalam tutorial ini, Anda menambahkan pemberitahuan push ke semua proyek yang dihasilkan dari awal cepat Xamarin.Forms. Ini berarti bahwa pemberitahuan push dikirim ke semua klien lintas platform setiap kali catatan dimasukkan.
Jika Anda tidak menggunakan proyek server mulai cepat yang diunduh, Anda memerlukan paket ekstensi pemberitahuan push. Untuk informasi selengkapnya, lihat Bekerja dengan SDK server backend .NET untuk Azure Mobile Apps.
Prasyarat
Untuk iOS, Anda memerlukan keanggotaan Program Pengembang Apple dan perangkat iOS fisik. Simulator iOS tidak mendukung pemberitahuan push.
Mengonfigurasi hub pemberitahuan
Fitur Aplikasi Seluler Azure App Service menggunakan Azure Notification Hubs untuk mengirim push, sehingga Anda akan mengonfigurasi hub notifikasi untuk aplikasi seluler Anda.
Di portal Azure, buka App Services, lalu pilih kembali aplikasi Anda. Di bawah Pengaturan, pilih Push.
Untuk menambahkan sumber daya hub notifikasi ke aplikasi, pilih Koneksi. Anda dapat membuat hub atau terhubung ke hub yang sudah ada.

Sekarang Anda telah menghubungkan hub notifikasi ke proyek back-end Aplikasi Seluler Anda. Kemudian Anda mengonfigurasi hub notifikasi ini untuk terhubung ke sistem notifikasi platform (PNS) untuk mendorong ke perangkat.
Memperbarui proyek server untuk mengirim pemberitahuan push
Di bagian ini, Anda memperbarui kode di proyek back-end Aplikasi Seluler yang ada untuk mengirim pemberitahuan push setiap kali item baru ditambahkan. Proses ini didukung oleh fitur template Azure Notification Hubs, yang memungkinkan dorongan lintas platform. Berbagai klien terdaftar untuk pemberitahuan push menggunakan template, dan satu dorongan universal bisa sampai ke semua platform klien.
Pilih salah satu prosedur berikut yang cocok dengan jenis proyek back-end Anda— back end .NET atau Node.js back end.
Proyek back-end .NET
Di Visual Studio, klik kanan proyek server. Kemudian pilih Kelola Paket NuGet. Cari
Microsoft.Azure.NotificationHubs, kemudian pilih Instal. Proses ini menginstal pustaka Notification Hubs untuk mengirim pemberitahuan dari ujung belakang.Dalam proyek server, buka ControllersTodoItemController>.cs. Kemudian tambahkan yang berikut menggunakan pernyataan:
using System.Collections.Generic; using Microsoft.Azure.NotificationHubs; using Microsoft.Azure.Mobile.Server.Config;Dalam metode PostTodoItem , tambahkan kode berikut setelah panggilan ke InsertAsync:
// Get the settings for the server project. HttpConfiguration config = this.Configuration; MobileAppSettingsDictionary settings = this.Configuration.GetMobileAppSettingsProvider().GetMobileAppSettings(); // Get the Notification Hubs credentials for the mobile app. string notificationHubName = settings.NotificationHubName; string notificationHubConnection = settings .Connections[MobileAppSettingsKeys.NotificationHubConnectionString].ConnectionString; // Create a new Notification Hub client. NotificationHubClient hub = NotificationHubClient .CreateClientFromConnectionString(notificationHubConnection, notificationHubName); // Send the message so that all template registrations that contain "messageParam" // receive the notifications. This includes APNS, GCM, WNS, and MPNS template registrations. Dictionary<string,string> templateParams = new Dictionary<string,string>(); templateParams["messageParam"] = item.Text + " was added to the list."; try { // Send the push notification and log the results. var result = await hub.SendTemplateNotificationAsync(templateParams); // Write the success result to the logs. config.Services.GetTraceWriter().Info(result.State.ToString()); } catch (System.Exception ex) { // Write the failure result to the logs. config.Services.GetTraceWriter() .Error(ex.Message, null, "Push.SendAsync Error"); }Proses ini mengirimkan pemberitahuan template yang berisi item. Teks saat item baru disisipkan.
Terbitkan ulang proyek server.
Node.js proyek back-end
Siapkan proyek backend Anda.
Ganti kode yang ada di todoitem.js dengan kode berikut:
var azureMobileApps = require('azure-mobile-apps'), promises = require('azure-mobile-apps/src/utilities/promises'), logger = require('azure-mobile-apps/src/logger'); var table = azureMobileApps.table(); table.insert(function (context) { // For more information about the Notification Hubs JavaScript SDK, // see https://aka.ms/nodejshubs. logger.info('Running TodoItem.insert'); // Define the template payload. var payload = '{"messageParam": "' + context.item.text + '" }'; // Execute the insert. The insert returns the results as a promise. // Do the push as a post-execute action within the promise flow. return context.execute() .then(function (results) { // Only do the push if configured. if (context.push) { // Send a template notification. context.push.send(null, payload, function (error) { if (error) { logger.error('Error while sending push notification: ', error); } else { logger.info('Push notification sent successfully!'); } }); } // Don't forget to return the results from the context.execute(). return results; }) .catch(function (error) { logger.error('Error while running context.execute: ', error); }); }); module.exports = table;Proses ini mengirimkan pemberitahuan template yang berisi item.text saat item baru dimasukkan.
Saat Anda mengedit file di komputer lokal Anda, terbitkan kembali proyek server.
Mengonfigurasi dan menjalankan proyek Android (opsional)
Selesaikan bagian ini untuk mengaktifkan pemberitahuan push untuk proyek Droid Xamarin.Forms untuk Android.
Aktifkan Firebase Cloud Messaging (FCM)
Masuk ke Konsol Firebase. Buat proyek 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, salin nilai applicationId Anda di file build.gradle aplikasi. Contohnya,
com.fabrikam.fcmtutorial1app.
Pilih Daftar aplikasi.
Pilih Unduh google-services.jsanda, simpan file ke folder aplikasi proyek Anda, lalu pilih Berikutnya.

Buat perubahan konfigurasi berikut ke proyek Anda di Android Studio.
Di file build.gradle tingkat proyek Anda (<project>/build.gradle), tambahkan pernyataan berikut ke bagian dependensi.
classpath 'com.google.gms:google-services:4.0.1'Di file build.gradle tingkat aplikasi (<project>/<app-module>/build.gradle), tambahkan pernyataan berikut ke bagian dependensi .
implementation 'com.google.firebase:firebase-core:16.0.8' implementation 'com.google.firebase:firebase-messaging:17.3.4'Tambahkan baris berikut ke bagian akhir file build.gradle tingkat aplikasi setelah bagian dependensi.
apply plugin: 'com.google.gms.google-services'Pilih Sinkronkan sekarang pada toolbar.

Pilih Selanjutnya.
Pilih Lompati langkah ini.

Di konsol Firebase, pilih cog untuk proyek Anda. Pilih Pengaturan Proyek.

Jika belum mengunduh file google-services.json ke dalam folder aplikasi proyek Android Studio Anda, Anda dapat melakukannya di halaman ini.
Alihkan ke tab Perpesanan Cloud di bagian atas.
Salin dan simpan Kunci Server untuk digunakan nanti. Gunakan nilai ini untuk mengonfigurasi hub Anda.
Konfigurasikan aplikasi seluler kembali untuk mengirim permintaan push dengan menggunakan FCM
- Di portal Azure, pilih TelusuriLayanan AllApp>. Kemudian pilih kembali Aplikasi Seluler Anda.
- Di bawah Pengaturan, pilih Push. Kemudian pilih Konfigurasikan layanan pemberitahuan push.
- Buka Google (GCM) Masukkan kunci server lama FCM yang Anda peroleh dari Firebase console, lalu pilih Simpan.
Layanan Anda sekarang dikonfigurasi untuk bekerja dengan Firebase Cloud Messaging.
Menambahkan notifikasi push ke proyek Android
Dengan back end dikonfigurasi dengan FCM, Anda dapat menambahkan komponen dan kode ke klien untuk mendaftar dengan FCM. Anda juga dapat mendaftar untuk pemberitahuan push dengan Azure Notification Hubs melalui back end Aplikasi Seluler, dan menerima pemberitahuan.
- Dalam proyek Droid , klik kanan Referensi > Kelola Paket NuGet ....
- Di jendela Pengelola Paket NuGet, cari paket Xamarin.Firebase.Messaging dan tambahkan ke proyek.
- Di properti proyek untuk proyek Droid , atur aplikasi untuk dikompilasi menggunakan Android versi 7.0 atau lebih tinggi.
- Tambahkan file google-services.json , yang diunduh dari Firebase console, ke root proyek Droid dan atur tindakan build-nya ke GoogleServicesJson. Untuk informasi selengkapnya, lihat Menambahkan File JSON Layanan Google.
Mendaftar dengan Firebase Cloud Messaging
Buka file AndroidManifest.xml dan masukkan elemen berikut
<receiver>ke<application>dalam elemen:<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>
Menerapkan Layanan ID Firebase Instance
Tambahkan kelas baru ke proyek Droid bernama
FirebaseRegistrationService, dan pastikan bahwa pernyataan berikutusingada di bagian atas file:using System.Threading.Tasks; using Android.App; using Android.Util; using Firebase.Iid; using Microsoft.WindowsAzure.MobileServices;Ganti kelas kosong
FirebaseRegistrationServicedengan kode berikut:[Service] [IntentFilter(new[] { "com.google.firebase.INSTANCE_ID_EVENT" })] public class FirebaseRegistrationService : FirebaseInstanceIdService { const string TAG = "FirebaseRegistrationService"; public override void OnTokenRefresh() { var refreshedToken = FirebaseInstanceId.Instance.Token; Log.Debug(TAG, "Refreshed token: " + refreshedToken); SendRegistrationTokenToAzureNotificationHub(refreshedToken); } void SendRegistrationTokenToAzureNotificationHub(string token) { // Update notification hub registration Task.Run(async () => { await AzureNotificationHubService.RegisterAsync(TodoItemManager.DefaultManager.CurrentClient.GetPush(), token); }); } }Kelas bertanggung
FirebaseRegistrationServicejawab untuk menghasilkan token keamanan yang mengotorisasi aplikasi untuk mengakses FCM. Metode iniOnTokenRefreshdipanggil ketika aplikasi menerima token pendaftaran dari FCM. Metode ini mengambil token dariFirebaseInstanceId.Instance.Tokenproperti, yang diperbarui secara asinkron oleh FCM. Metode iniOnTokenRefreshjarang dipanggil, karena token hanya diperbarui ketika aplikasi diinstal atau dihapus, ketika pengguna menghapus data aplikasi, ketika aplikasi menghapus ID Instans, atau ketika keamanan token telah dikompromikan. Selain itu, layanan ID Instans FCM akan meminta aplikasi menyegarkan tokennya secara berkala, biasanya setiap 6 bulan.Metode ini
OnTokenRefreshjuga memanggilSendRegistrationTokenToAzureNotificationHubmetode, yang digunakan untuk mengaitkan token pendaftaran pengguna dengan Azure Notification Hub.
Mendaftar dengan Azure Notification Hub
Tambahkan kelas baru ke proyek Droid bernama
AzureNotificationHubService, dan pastikan bahwa pernyataan berikutusingada di bagian atas file:using System; using System.Threading.Tasks; using Android.Util; using Microsoft.WindowsAzure.MobileServices; using Newtonsoft.Json.Linq;Ganti kelas kosong
AzureNotificationHubServicedengan kode berikut:public class AzureNotificationHubService { const string TAG = "AzureNotificationHubService"; public static async Task RegisterAsync(Push push, string token) { try { const string templateBody = "{\"data\":{\"message\":\"$(messageParam)\"}}"; JObject templates = new JObject(); templates["genericMessage"] = new JObject { {"body", templateBody} }; await push.RegisterAsync(token, templates); Log.Info("Push Installation Id: ", push.InstallationId.ToString()); } catch (Exception ex) { Log.Error(TAG, "Could not register with Notification Hub: " + ex.Message); } } }Metode ini
RegisterAsyncmembuat template pesan pemberitahuan sederhana sebagai JSON, dan mendaftar untuk menerima pemberitahuan template dari hub notifikasi, menggunakan token pendaftaran Firebase. Ini memastikan bahwa setiap pemberitahuan yang dikirim dari Azure Notification Hub akan menargetkan perangkat yang diwakili oleh token pendaftaran.
Menampilkan Isi Pemberitahuan Push
Tambahkan kelas baru ke proyek Droid bernama
FirebaseNotificationService, dan pastikan bahwa pernyataan berikutusingada di bagian atas file:using Android.App; using Android.Content; using Android.Media; using Android.Support.V7.App; using Android.Util; using Firebase.Messaging;Ganti kelas kosong
FirebaseNotificationServicedengan kode berikut:[Service] [IntentFilter(new[] { "com.google.firebase.MESSAGING_EVENT" })] public class FirebaseNotificationService : FirebaseMessagingService { const string TAG = "FirebaseNotificationService"; public override void OnMessageReceived(RemoteMessage message) { Log.Debug(TAG, "From: " + message.From); // Pull message body out of the template var messageBody = message.Data["message"]; if (string.IsNullOrWhiteSpace(messageBody)) return; Log.Debug(TAG, "Notification message body: " + messageBody); SendNotification(messageBody); } void SendNotification(string messageBody) { var intent = new Intent(this, typeof(MainActivity)); intent.AddFlags(ActivityFlags.ClearTop); //Unique request code to avoid PendingIntent collision. var requestCode = new Random().Next(); var pendingIntent = PendingIntent.GetActivity(this, requestCode, intent, PendingIntentFlags.OneShot); var notificationBuilder = new NotificationCompat.Builder(this) .SetSmallIcon(Resource.Drawable.ic_stat_ic_notification) .SetContentTitle("New Todo Item") .SetContentText(messageBody) .SetContentIntent(pendingIntent) .SetSound(RingtoneManager.GetDefaultUri(RingtoneType.Notification)) .SetAutoCancel(true); var notificationManager = NotificationManager.FromContext(this); notificationManager.Notify(0, notificationBuilder.Build()); } }Metode,
OnMessageReceivedyang dipanggil ketika aplikasi menerima pemberitahuan dari FCM, mengekstrak konten pesan, dan memanggilSendNotificationmetode. Metode ini mengubah konten pesan menjadi pemberitahuan lokal yang diluncurkan saat aplikasi berjalan, dengan pemberitahuan muncul di area notifikasi.
Sekarang, Anda siap menguji pemberitahuan push di aplikasi yang berjalan di perangkat Android atau emulator.
Menguji notifikasi push di aplikasi Android Anda
Dua langkah pertama hanya diperlukan saat Anda menguji emulator.
- Pastikan Anda menerapkan atau men-debug pada perangkat atau emulator yang dikonfigurasi dengan Layanan Google Play. Ini dapat diverifikasi dengan memeriksa apakah aplikasi Play diinstal pada perangkat atau emulator.
- Tambahkan akun Google ke perangkat Android dengan mengklik akun Apps>Pengaturan>Add. Kemudian ikuti petunjuk untuk menambahkan akun Google yang ada ke perangkat, atau untuk membuat yang baru.
- Di Visual Studio atau Xamarin Studio, klik kanan proyek Droid dan klik Set sebagai proyek startup.
- Klik Jalankan untuk membangun proyek dan memulai aplikasi di perangkat atau emulator Android Anda.
- Di aplikasi, ketik tugas, lalu klik ikon plus (+).
- Verifikasi bahwa pemberitahuan diterima saat item ditambahkan.
Mengonfigurasi dan menjalankan proyek iOS (opsional)
Bagian ini untuk menjalankan proyek iOS Xamarin untuk perangkat iOS. Anda dapat melewati bagian ini jika Anda tidak bekerja dengan perangkat 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 Keychain Access. 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, Keychain Access 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.

Aksi ini menyimpan file CSR di lokasi terpilih. 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 memilih Daftar, Anda akan melihat ID Aplikasi baru sebagai item baris di halaman Sertifikat, Profil Pengidentifikasi&.
Di halaman Sertifikat, Profil Pengidentifikasi&, di bawah 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. 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 diberi nama aps_development.cer.
Klik dua kali pada sertifikat push yang diunduh aps_development.cer. Tindakan ini menginstal sertifikat baru di Keychain, 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, Profil Pengidentifikasi&, klik Kunci.
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 kunci) 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 provisi untuk aplikasi
Kembali ke Portal Provisi iOS, pilih Sertifikat, Profil Pengidentifikasi&, 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, Profil Pengidentifikasi&, pilih Profil dari menu 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 provisi 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 melewati ke langkah 5.
Masuk ke portal Azure.
Pilih Semua layanan di menu sebelah kiri, lalu pilih Notification Hubs di bagian Seluler. Pilih ikon bintang di samping nama layanan untuk menambahkan layanan ke bagian FAVORIT di menu sebelah kiri. Setelah Anda menambahkan Notification Hubs ke FAVORIT, pilih di menu sebelah kiri.

Pada halaman Notification Hubs, pilih Tambahkan pada toolbar.

Pada halaman Notification Hubs, lakukan langkah-langkah berikut ini:
Masukkan nama di Notification Hubs.
Masukkan nama di Buat namespace baru. Namespace berisi satu atau beberapa hub.
Pilih nilai dari kotak daftar drop-down Lokasi. Nilai ini menentukan lokasi tempat Anda ingin membuat hub.
Pilih grup sumber daya yang sudah ada di Grup Sumber Daya, atau buat nama untuk grup sumber daya baru.
Pilih Buat.

Pilih Pemberitahuan (ikon bel), lalu pilih Buka sumber daya. Anda juga dapat me-refresh daftar di halaman Notification Hubs dan memilih hub Anda.

Pilih Kebijakan Akses dari daftar. Perhatikan bahwa dua string koneksi tersedia untuk Anda. Anda akan membutuhkannya nanti untuk menangani pemberitahuan push.
Penting
Jangan gunakan kebijakan DefaultFullSharedAccessSignature di aplikasi Anda. Kebijakan ini dimaksudkan untuk digunakan di ujung belakang Anda saja.

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
Gunakan Mode Produksi untuk Aplikasi hanya jika Anda ingin 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.
Mengonfigurasi hub notifikasi untuk APNS
- Di Mac Anda, luncurkan Akses Rantai Kunci. Di bilah navigasi kiri, di bawah Kategori, buka Sertifikat Saya. Temukan sertifikat SSL yang Anda unduh di bagian sebelumnya, lalu ungkapkan isinya. Pilih hanya sertifikat (jangan pilih kunci pribadi). Kemudian ekspor.
- Di portal Azure, pilih TelusuriLayanan AllApp>. Kemudian pilih kembali Aplikasi Seluler Anda.
- Di bawah Pengaturan, pilih App Service Push. Kemudian pilih nama hub notifikasi Anda.
- Buka Layanan >Pemberitahuan Push AppleUpload Sertifikat. Upload file .p12, memilih Mode yang benar (tergantung pada apakah sertifikat SSL klien Anda dari yang lebih awal adalah produksi atau kotak pasir). Simpan perubahan apa pun.
Layanan Anda sekarang dikonfigurasi untuk bekerja dengan pemberitahuan push di iOS.
Selanjutnya, Anda akan mengonfigurasi pengaturan proyek iOS di Xamarin Studio atau Visual Studio.
Mengonfigurasi proyek iOS di Xamarin Studio
Di Xamarin.Studio, buka Info.plist, dan perbarui Bundle Identifier dengan ID bundel yang Anda buat sebelumnya dengan ID aplikasi baru Anda.

Gulir ke bawah ke Mode Latar Belakang. Pilih kotak Aktifkan Mode Latar Belakang dan kotak Pemberitahuan jarak jauh .

Klik dua kali proyek Anda di Panel Solusi untuk membuka Opsi Project.
Di bawah Build, pilih Penandatanganan Bundel iOS, dan pilih identitas dan profil provisi yang sesuai yang baru saja Anda siapkan untuk proyek ini.

Ini memastikan bahwa proyek menggunakan profil baru untuk penandatanganan kode. Untuk dokumentasi penyediaan perangkat Xamarin resmi, lihat Penyediaan Perangkat Xamarin.
Mengonfigurasi proyek iOS di Visual Studio
Di Visual Studio, klik kanan proyek, lalu klik Properti.
Di halaman properti, klik tab Aplikasi iOS , dan perbarui Identifier dengan ID yang Anda buat sebelumnya.

Di tab Penandatanganan Bundel iOS , pilih identitas dan profil provisi yang sesuai yang baru saja Anda siapkan untuk proyek ini.

Ini memastikan bahwa proyek menggunakan profil baru untuk penandatanganan kode. Untuk dokumentasi penyediaan perangkat Xamarin resmi, lihat Penyediaan Perangkat Xamarin.
Klik ganda Info.plist untuk membukanya, lalu aktifkan RemoteNotifications di bawah Mode Latar Belakang.
Menambahkan notifikasi push ke aplikasi iOS Anda
Dalam proyek iOS , buka AppDelegate.cs dan tambahkan pernyataan berikut ke bagian atas file kode.
using Newtonsoft.Json.Linq;Di kelas AppDelegate , tambahkan penimpaan untuk acara RegisteredForRemoteNotifications untuk mendaftar notifikasi:
public override void RegisteredForRemoteNotifications(UIApplication application, NSData deviceToken) { const string templateBodyAPNS = "{\"aps\":{\"alert\":\"$(messageParam)\"}}"; JObject templates = new JObject(); templates["genericMessage"] = new JObject { {"body", templateBodyAPNS} }; // Register for push with your mobile app Push push = TodoItemManager.DefaultManager.CurrentClient.GetPush(); push.RegisterAsync(deviceToken, templates); }Di AppDelegate, tambahkan juga penimpaan berikut untuk penangan peristiwa DidReceiveRemoteNotification :
public override void DidReceiveRemoteNotification(UIApplication application, NSDictionary userInfo, Action<UIBackgroundFetchResult> completionHandler) { NSDictionary aps = userInfo.ObjectForKey(new NSString("aps")) as NSDictionary; string alert = string.Empty; if (aps.ContainsKey(new NSString("alert"))) alert = (aps[new NSString("alert")] as NSString).ToString(); //show alert if (!string.IsNullOrEmpty(alert)) { UIAlertView avAlert = new UIAlertView("Notification", alert, null, "OK", null); avAlert.Show(); } }Metode ini menangani notifikasi masuk saat aplikasi sedang berjalan.
Di kelas AppDelegate , tambahkan kode berikut ke metode FinishedLaunching :
// Register for push notifications. var settings = UIUserNotificationSettings.GetSettingsForTypes( UIUserNotificationType.Alert | UIUserNotificationType.Badge | UIUserNotificationType.Sound, new NSSet()); UIApplication.SharedApplication.RegisterUserNotificationSettings(settings); UIApplication.SharedApplication.RegisterForRemoteNotifications();Hal ini memungkinkan dukungan untuk pemberitahuan jarak jauh dan permintaan mendorong pendaftaran.
Aplikasi Anda sekarang diperbarui untuk mendukung pemberitahuan push.
Menguji notifikasi push di aplikasi iOS Anda
Klik kanan proyek iOS, dan klik Set as StartUp Project.
Tekan tombol Jalankan atau F5 di Visual Studio untuk membangun proyek dan memulai aplikasi di perangkat iOS. Kemudian klik OK untuk menerima pemberitahuan push.
Catatan
Anda harus secara eksplisit menerima pemberitahuan push dari aplikasi Anda. Permintaan ini hanya terjadi pertama kali aplikasi berjalan.
Di aplikasi, ketik tugas, lalu klik ikon plus (+).
Verifikasi bahwa pemberitahuan diterima, lalu klik OK untuk mengabaikan pemberitahuan.
Mengonfigurasi dan menjalankan proyek Windows (opsional)
Bagian ini untuk menjalankan proyek Xamarin.Forms WinApp dan WinPhone81 untuk perangkat Windows. Langkah-langkah ini juga mendukung proyek Universal Windows Platform (UWP). Anda dapat melewati bagian ini jika Anda tidak bekerja dengan perangkat Windows.
Daftarkan aplikasi Windows Anda untuk pemberitahuan push dengan Windows Notification Service (WNS)
Di Visual Studio Penjelajah Solusi, klik kanan proyek aplikasi Windows Store. Kemudian pilih StoreAssociate> App dengan Store.

Di panduan, pilih Berikutnya. Kemudian masuk dengan akun Microsoft Anda. Di Pesan nama aplikasi baru, ketik nama untuk aplikasi Anda, lalu pilih Cadangan.
Setelah pendaftaran aplikasi berhasil dibuat, pilih nama aplikasi baru. Pilih Berikutnya, lalu pilih Associate. Proses ini menambahkan informasi pendaftaran Windows Store yang diperlukan ke manifes aplikasi.
Ulangi langkah 1 dan 3 untuk proyek aplikasi Windows Phone Store dengan menggunakan pendaftaran yang sama yang sebelumnya Anda buat untuk aplikasi Windows Store.
Buka Windows Dev Center, lalu masuk dengan akun Microsoft Anda. Di Aplikasi saya, pilih pendaftaran aplikasi baru. Kemudian perluas notifikasi ServicesPush>.
Pada halaman Notifikasi push, di bawah Windows Push Notification Services (WNS) dan Microsoft Azure Mobile Apps, pilih situs Layanan Langsung. Catat nilai-nilai Paket SID dan nilai saat ini di Application Secret.

Penting
Rahasia aplikasi dan paket SID adalah kredensial keamanan yang penting. Jangan membagikan nilai-nilai ini dengan siapa pun atau mendistribusikannya dengan aplikasi Anda.
Mengonfigurasi hub notifikasi untuk WNS
Di portal Azure, pilih TelusuriLayanan AllApp>. Kemudian pilih kembali Aplikasi Seluler Anda. Di bawah Pengaturan, pilih App Service Push. Kemudian pilih nama hub notifikasi Anda.
Pergi ke Windows (WNS). Kemudian masukkan kunci Keamanan (rahasia klien) dan Paket SID yang Anda peroleh dari situs Live Services. Selanjutnya, pilih Simpan.

Back end Anda sekarang dikonfigurasi untuk menggunakan WNS untuk mengirim pemberitahuan push.
Menambahkan notifikasi push ke aplikasi Windows Anda
Di Visual Studio, buka App.xaml.cs dalam proyek Windows, dan tambahkan pernyataan berikut.
using Newtonsoft.Json.Linq; using Microsoft.WindowsAzure.MobileServices; using System.Threading.Tasks; using Windows.Networking.PushNotifications; using <your_TodoItemManager_portable_class_namespace>;Ganti
<your_TodoItemManager_portable_class_namespace>dengan namespace proyek portabel Anda yang berisiTodoItemManagerkelas.Di App.xaml.cs, tambahkan metode InitNotificationsAsync berikut:
private async Task InitNotificationsAsync() { var channel = await PushNotificationChannelManager .CreatePushNotificationChannelForApplicationAsync(); const string templateBodyWNS = "<toast><visual><binding template=\"ToastText01\"><text id=\"1\">$(messageParam)</text></binding></visual></toast>"; JObject headers = new JObject(); headers["X-WNS-Type"] = "wns/toast"; JObject templates = new JObject(); templates["genericMessage"] = new JObject { {"body", templateBodyWNS}, {"headers", headers} // Needed for WNS. }; await TodoItemManager.DefaultManager.CurrentClient.GetPush() .RegisterAsync(channel.Uri, templates); }Metode ini mendapatkan saluran pemberitahuan push, dan mendaftarkan template untuk menerima pemberitahuan template dari hub notifikasi Anda. Pemberitahuan template yang mendukung messageParam akan dikirimkan ke klien ini.
Di App.xaml.cs, perbarui definisi metode penangan peristiwa OnLaunched dengan
asyncmenambahkan pengubah. Kemudian tambahkan baris kode berikut di akhir metode:await InitNotificationsAsync();Ini memastikan bahwa pendaftaran pemberitahuan push dibuat atau disegarkan setiap kali aplikasi diluncurkan. Penting untuk melakukan ini untuk menjamin bahwa saluran push WNS selalu aktif.
Di Penjelajah Solusi untuk Visual Studio, buka file Package.appxmanifest, dan atur Toast Capable to Yes di bawah Notifikasi.
Bangun aplikasi dan verifikasi bahwa Anda tidak memiliki kesalahan. Aplikasi klien Anda sekarang harus mendaftar untuk pemberitahuan template dari back end Aplikasi Seluler. Ulangi bagian ini untuk setiap proyek Windows dalam solusi Anda.
Menguji notifikasi push di aplikasi Windows Anda
- Di Visual Studio, klik kanan proyek Windows, dan klik Set sebagai proyek startup.
- Tekan tombol Jalankan untuk membangun proyek dan memulai aplikasi.
- Di aplikasi, ketik nama untuk todoitem baru, lalu klik ikon plus (+) untuk menambahkannya.
- Verifikasi bahwa pemberitahuan diterima saat item ditambahkan.
Langkah berikutnya
Anda dapat mempelajari notifikasi push lebih lanjut:
- Mengirim Pemberitahuan Push dari Azure Mobile Apps
- Olahpesan Firebase Cloud
- Pemberitahuan Jarak Jauh dengan Firebase Cloud Messaging
- Mendiagnosis masalah notifikasi push
Ada berbagai alasan mengapa pemberitahuan mungkin dijatuhkan atau tidak berakhir di perangkat. Topik ini menunjukkan kepada Anda cara menganalisis dan mencari tahu akar penyebab kegagalan pemberitahuan push.
Anda juga dapat melanjutkan ke salah satu tutorial berikut:
- Menambahkan autentikasi ke aplikasi Anda
Pelajari cara mengautentikasi pengguna aplikasi Anda dengan penyedia identitas. - Mengaktifkan sinkronisasi offline untuk aplikasi Anda
Pelajari cara menambahkan dukungan offline untuk aplikasi Anda dengan menggunakan back end Aplikasi Seluler. Dengan sinkronisasi offline, pengguna dapat berinteraksi dengan aplikasi seluler—melihat, menambahkan, atau memodifikasi data—bahkan ketika tidak ada koneksi jaringan.