Yönlendirme ve etiket ifadeleri
Genel Bakış
Etiket ifadeleri, Notification Hubs aracılığıyla anında iletme bildirimi gönderirken belirli cihaz kümelerini veya daha özel kayıtları hedeflemenizi sağlar.
Belirli kayıtları hedefleme
Belirli bildirim kayıtlarını hedeflemenin tek yolu etiketleri bunlarla ilişkilendirmek ve ardından bu etiketleri hedeflemektir. Kayıt Yönetimi'nde açıklandığı gibi, anında iletme bildirimleri almak için bir uygulamanın bir bildirim hub'ına cihaz tanıtıcısı kaydetmesi gerekir. Uygulama bir bildirim hub'ına kayıt oluşturduğunda, uygulama arka ucu buna anında iletme bildirimleri gönderebilir. Uygulama arka ucu, belirli bir bildirimle hedefleyebileceğiniz kayıtları aşağıdaki yollarla seçebilir:
- Yayın: Bildirim hub'ında tüm kayıtlar bildirimi alır.
- Etiket: Belirtilen etiketi içeren tüm kayıtlar bildirimi alır.
- Etiket ifadesi: Etiket kümesi belirtilen ifadeyle eşleşen tüm kayıtlar bildirimi alır.
Etiketler
Etiket, alfasayısal ve şu alfasayısal olmayan karakterleri içeren 120 karaktere kadar herhangi bir dize olabilir: '_
', '', '@
', '#
.
', ':
', '-
'. Aşağıdaki örnekte, belirli müzik grupları hakkında bildirim alabileceğiniz bir uygulama gösterilmektedir. Bu senaryoda, bildirimleri yönlendirmenin basit bir yolu, kayıtları aşağıdaki şekilde gösterildiği gibi farklı bantları temsil eden etiketlerle etiketlemektir:
Şekilde, Beatles ile etiketlenen ileti yalnızca Beatles etiketiyle kaydedilen tablete ulaşır.
Etiketler için kayıt oluşturma hakkında daha fazla bilgi için bkz. Kayıt Yönetimi.
Microsoft Azure Notification Hubs SDK'sında sınıfının bildirim gönderme yöntemlerini Microsoft.Azure.NotificationHubs.NotificationHubClient
kullanarak etiketlere bildirim gönderebilirsiniz. Node.js veya Anında İletme Bildirimleri REST API'lerini de kullanabilirsiniz. SDK'nın kullanıldığı bir örnek aşağıda verilmiştir.
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");
Etiketler önceden sağlanmamalıdır ve uygulamaya özgü birden çok kavramdan bahsedilebilir. Örneğin, bu örnek uygulamanın kullanıcıları gruplara yorum yapabilir ve yalnızca favori gruplarındaki yorumlar için değil, aynı zamanda yorum yaptıkları grup ne olursa olsun arkadaşlarının tüm yorumları için de bildirim almak isteyebilir. Aşağıdaki şekilde bu senaryonun bir örneği vurgulanır:
Bu örnekte Alice, Beatles güncelleştirmeleriyle, Bob ise Wailers güncelleştirmeleriyle ilgileniyor. Bob ayrıca Charlie'nin yorumlarıyla ve Charlie de Wailer'larla ilgileniyor. Charlie'nin Beatles hakkındaki yorumu için bir bildirim gönderildiğinde Notification Hubs bunu hem Alice'e hem de Bob'a gönderir.
Etiketlerde (örneğin, band_Beatles
veya follows_Charlie
) birden çok sorunu kodlayabilirsiniz ancak etiketler basit dizelerdir ve değer içeren özellikler değildir. Kayıt yalnızca belirli bir etiketin varlığı veya yokluğuyla eşleşir.
İlgi alanı gruplarına göndermek için etiketlerin nasıl kullanılacağına ilişkin tam adım adım öğretici için bkz. Son Dakika Haberleri.
Not
Azure Notification Hubs kayıt başına en fazla 60 etiketi destekler.
Kullanıcıları hedeflemek için etiketleri kullanma
Etiketleri kullanmanın bir diğer yolu da belirli bir kullanıcıyla ilişkili tüm cihazları tanımlamaktır. Bir Kaydı, aşağıdaki şekilde olduğu gibi kullanıcı kimliğini içeren bir etiketle etiketleyebilirsiniz:
Şekilde, etiketlenen ileti ile user_Alice
etiketlenen user_Alice
tüm cihazlara ulaşır.
Etiket ifadeleri
Bildirimlerin tek bir etiketle değil, etiketleri kullanan bir Boole ifadesiyle tanımlanan bir kayıt kümesini hedeflemesi gereken durumlar vardır.
Red Sox ve Cardinals arasındaki bir oyun hakkında Boston'daki herkese anımsatıcı gönderen bir spor uygulaması düşünün. İstemci uygulaması, ekiplere ve konuma ilgi duyan etiketler kaydederse, bildirim Boston'da Red Sox veya Kardinallerle ilgilenen herkese hedeflenmelidir. Bu koşul aşağıdaki Boole ifadesiyle ifade edilebilir:
(follows_RedSox || follows_Cardinals) && location_Boston
Etiket ifadeleri () ve!
NOT
( OR
||
&&
gibi AND
yaygın Boole işleçlerini destekler; parantez de içerebilir. Yalnızca OR
işleçleri kullanan etiket ifadeleri 20 etikete başvurabilir; işleçleri olan AND
ifade ancak hiçbir OR
işleç 10 etikete başvuramamaktadır; aksi takdirde etiket ifadeleri 6 etiketle sınırlıdır.
SDK kullanarak etiket ifadeleriyle bildirim gönderme örneği aşağıda verilmiştir:
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);