Perutean dan ekspresi tag

Gambaran Umum

Ekspresi tag memungkinkan Anda menargetkan kumpulan perangkat tertentu, atau pendaftaran khusus, saat mengirim pemberitahuan push melalui Notification Hubs.

Menargetkan pendaftaran khusus

Satu-satunya cara untuk menargetkan pendaftaran notifikasi khusus adalah dengan mengaitkan tag dengan mereka, lalu menargetkan tag tersebut. Seperti yang dibahas dalam Manajemen Pendaftaran, untuk menerima pemberitahuan push, aplikasi harus mendaftarkan penanganan perangkat di notification hub. Setelah aplikasi membuat pendaftaran di notification hub, ujung belakang aplikasi dapat mengirim pemberitahuan push ke sana. Ujung belakang aplikasi dapat memilih pendaftaran yang ditargetkan dengan pemberitahuan khusus dengan cara berikut:

  1. Siaran: semua pendaftaran di notification hub akan menerima pemberitahuan.
  2. Tag: semua pendaftaran yang berisi tag yang ditentukan akan menerima pemberitahuan.
  3. Ekspresi tag: semua pendaftaran yang kumpulan tagnya cocok dengan ekspresi yang ditentukan akan menerima pemberitahuan.

Tag

Tag dapat berupa string apa pun, hingga 120 karakter, berisi alfanumerik, dan karakter non-alfanumerik berikut: '_', '@', '#', '.', ':', '-'. Contoh berikut menunjukkan aplikasi tempat Anda dapat menerima notifikasi toast tentang grup musik tertentu. Dalam skenario ini, cara sederhana untuk merutekan pemberitahuan adalah dengan menandai pendaftaran dengan tag yang mewakili band yang berbeda, seperti pada gambar berikut:

Gambaran umum tag

Dalam gambar, pesan yang ditandai dengan Beatles hanya mencapai tablet yang terdaftar dengan tag Beatles.

Untuk informasi selengkapnya tentang membuat pendaftaran untuk tag, lihat Manajemen Pendaftaran.

Anda dapat mengirim notifikasi ke tag menggunakan metode notifikasi kirim kelas Microsoft.Azure.NotificationHubs.NotificationHubClient di Microsoft Azure Notification Hubs SDK. Anda juga dapat menggunakan Node.js, atau REST API Pemberitahuan Push. Berikut ini contoh menggunakan SDK.

Microsoft.Azure.NotificationHubs.NotificationOutcome outcome = null;

// Windows 8.1 / Windows Phone 8.1
var toast = @"<toast><visual><binding template=""ToastText01""><text id=""1"">" +
"You requested a Beatles notification</text></binding></visual></toast>";
outcome = await Notifications.Instance.Hub.SendWindowsNativeNotificationAsync(toast, "Beatles");

// Windows 10
toast = @"<toast><visual><binding template=""ToastGeneric""><text id=""1"">" +
"You requested a Wailers notification</text></binding></visual></toast>";
outcome = await Notifications.Instance.Hub.SendWindowsNativeNotificationAsync(toast, "Wailers");

Tag tidak boleh disediakan terlebih dahulu lagi, dan dapat merujuk ke beberapa konsep khusus aplikasi. Misalnya, pengguna aplikasi contoh ini dapat mengomentari band dan ingin menerima toast, tidak hanya untuk komentar di band favorit mereka, tetapi juga untuk semua komentar dari teman-teman mereka, terlepas dari band tempat mereka berkomentar. Gambar berikut menyoroti contoh skenario ini:

Menandai teman

Dalam contoh ini, Alice tertarik pada pembaruan untuk The Beatles, dan Bob tertarik pada pembaruan untuk Wailers. Bob juga tertarik dengan komentar Charlie, dan Charlie tertarik pada Wailers. Ketika pemberitahuan dikirim untuk komentar Charlie di The Beatles, Notification Hubs mengirimkannya ke Alice dan Bob.

Meskipun Anda dapat mengodekan beberapa kekhawatiran dalam tag (misalnya, band_Beatles atau follows_Charlie), tag adalah string sederhana dan bukan properti dengan nilai. Pendaftaran hanya cocok dengan kehadiran atau tidak adanya tag tertentu.

Untuk tutorial langkah demi langkah penuh tentang cara menggunakan tag untuk mengirim ke grup minat, lihat Breaking News.

Catatan

Azure Notification Hubs mendukung maksimal 60 tag per pendaftaran.

Menggunakan tag untuk menargetkan pengguna

Cara lain untuk menggunakan tag adalah dengan mengidentifikasi semua perangkat yang terkait dengan pengguna tertentu. Anda dapat menandai Pendaftaran dengan tag yang berisi ID pengguna, seperti pada gambar berikut:

Tandai pengguna

Dalam gambar, pesan yang ditandai user_Alice mencapai semua perangkat yang ditandai dengan user_Alice.

Ekspresi tag

Ada beberapa kasus ketika pemberitahuan harus menargetkan kumpulan pendaftaran yang diidentifikasi bukan oleh satu tag, tetapi oleh ekspresi Boolean menggunakan tag.

Bayangkan misalnya aplikasi olahraga yang mengirimkan pengingat kepada semua orang di Boston tentang permainan antara Red Sox dan Kardinal. Jika aplikasi klien mendaftarkan tag tentang minat dalam tim dan lokasi, maka pemberitahuan harus ditargetkan untuk semua orang di Boston yang tertarik pada Red Sox atau Kardinal. Kondisi ini dapat diungkapkan dengan ekspresi Boolean berikut:

(follows_RedSox || follows_Cardinals) && location_Boston

Ekspresi tag

Ekspresi tag mendukung operator Boolean umum seperti AND (&&), OR (||), and NOT (!), mereka juga dapat berisi tanda kurung. Ekspresi tag hanya menggunakan operator OR yang dapat mereferensikan 20 tag, ekspresi dengan operator AND tetapi tidak ada operator OR yang dapat mereferensikan 10 tag, jika tidak ada, ekspresi tag dibatasi hingga 6 tag.

Berikut ini contoh untuk mengirim pemberitahuan dengan ekspresi tag menggunakan SDK:

Microsoft.Azure.NotificationHubs.NotificationOutcome outcome = null;

String userTag = "(location_Boston && !follows_Cardinals)";

// Windows 8.1 / Windows Phone 8.1
var toast = @"<toast><visual><binding template=""ToastText01""><text id=""1"">" +
"You want info on the Red Sox</text></binding></visual></toast>";
outcome = await Notifications.Instance.Hub.SendWindowsNativeNotificationAsync(toast, userTag);

// Windows 10
toast = @"<toast><visual><binding template=""ToastGeneric""><text id=""1"">" +
"You want info on the Red Sox</text></binding></visual></toast>";
outcome = await Notifications.Instance.Hub.SendWindowsNativeNotificationAsync(toast, userTag);