Azure Notification Hubs ile platformlar arası bildirimler gönderme
Bu öğretici, Azure Notification Hubs [kullanarak belirli kullanıcılara bildirim gönderme öğreticisinde Notification Hubs.] Bu öğreticide, belirli bir kimliği doğrulanmış kullanıcıya kayıtlı tüm cihazlara nasıl anında bildirim bildirimlerinin nasıl bildirilmesi açıklanır. Bu yaklaşım, desteklenen her istemci platformuna bildirim göndermek için birden çok istek gerektirmektedir. Azure Notification Hubs, belirli bir cihazın nasıl bildirim almak istediğini belirtebilirsiniz şablonları destekler. Bu yöntem, platformlar arası bildirim göndermeyi kolaylaştırır.
Bu makalede, tüm platformları hedef alan bir bildirim göndermek için şablonlardan nasıl yararlan yararlanılabilir? Bu makalede, platformdan bağımsız bildirim göndermek için tek bir istek lanmıştır. Şablonlar hakkında daha ayrıntılı bilgi için bkz. Notification Hubs genel bakış.
Önemli
Windows Phone 8.1 ve önceki sürümleri 2019'da Visual Studio desteklenmiyor. Daha fazla bilgi için bkz. Visual Studio 2019 platform hedefleme ve uyumluluğu.
Not
Bu Notification Hubs, bir cihaz aynı etiketi kullanarak birden çok şablon kaydedebilirsiniz. Bu durumda, etiketi hedef alan bir gelen ileti, cihaza her şablon için bir tane olmak için birden çok bildirim teslim edilir. Bu işlem, aynı iletiyi hem rozet hem de bir Windows Store uygulamasında bildirim olarak birden çok görsel bildirimde görüntülemeye olanak sağlar.
Şablonları kullanarak platformlar arası bildirimler gönderme
Not
Microsoft Anında Bildirim Hizmeti (MPNS) kullanım dışıdır ve artık desteklenmiyor.
Bu bölümde, Azure Notification Hubs öğreticisinde azure kullanarak belirli kullanıcılara [bildirim gönderme öğreticisinde Notification Hubs] kullanır. Örneği tam olarak indirmek için GitHub.
Şablonları kullanarak platformlar arası bildirimler göndermek için şunları yapın:
içinde Visual Studio'Çözüm Gezgini, Denetleyiciler klasörünü genişletin ve ardından RegisterController.cs dosyasını açın.
Yönteminde yeni bir kayıt oluşturan kod bloğuna bulun ve
Putardından içeriği aşağıdakiswitchkodla değiştirin:switch (deviceUpdate.Platform) { case "mpns": var toastTemplate = "<?xml version=\"1.0\" encoding=\"utf-8\"?>" + "<wp:Notification xmlns:wp=\"WPNotification\">" + "<wp:Toast>" + "<wp:Text1>$(message)</wp:Text1>" + "</wp:Toast> " + "</wp:Notification>"; registration = new MpnsTemplateRegistrationDescription(deviceUpdate.Handle, toastTemplate); break; case "wns": toastTemplate = @"<toast><visual><binding template=""ToastText01""><text id=""1"">$(message)</text></binding></visual></toast>"; registration = new WindowsTemplateRegistrationDescription(deviceUpdate.Handle, toastTemplate); break; case "apns": var alertTemplate = "{\"aps\":{\"alert\":\"$(message)\"}}"; registration = new AppleTemplateRegistrationDescription(deviceUpdate.Handle, alertTemplate); break; case "fcm": var messageTemplate = "{\"data\":{\"message\":\"$(message)\"}}"; registration = new FcmTemplateRegistrationDescription(deviceUpdate.Handle, messageTemplate); break; default: throw new HttpResponseException(HttpStatusCode.BadRequest); }Bu kod, yerel kayıt yerine şablon kaydı oluşturmak için platforma özgü yöntemi çağrılır. Şablon kayıtları yerel kayıtlardan türetilir, mevcut kayıtları değiştirmenize gerek yok.
Bu Çözüm Gezgini, Denetleyiciler klasöründe NotificationsController.cs dosyasını açın.
Postyöntemini aşağıdaki kod ile değiştirin:public async Task<HttpResponseMessage> Post() { var user = HttpContext.Current.User.Identity.Name; var userTag = "username:" + user; var notification = new Dictionary<string, string> { { "message", "Hello, " + user } }; await Notifications.Instance.Hub.SendTemplateNotificationAsync(notification, userTag); return Request.CreateResponse(HttpStatusCode.OK); }Bu kod tüm platformlara aynı anda bir bildirim gönderir. Yerel yük belirtmezseniz. Notification Hubs, kayıtlı şablonlarda belirtilen şekilde, sağlanan etiket değerine sahip her cihaza doğru yükü oluşturur ve iletir.
Web API projenizi yeniden yayımla.
Kaydın başarılı olduğunu doğrulamak için istemci uygulamasını yeniden çalıştırın.
İsteğe bağlı olarak, istemci uygulamasını ikinci bir cihaza dağıtın ve ardından uygulamayı çalıştırın. Her cihazda bir bildirim görüntülenir.
Sonraki adımlar
Bu öğreticiyi tamamlamış olduğunuza göre, şu makalelerde Notification Hubs ve şablonlar hakkında daha fazla bilgi edinebilirsiniz:
- Şablonları kullanmaya yönelik farklı bir senaryo için Universal Windows Platform uygulamaları çalıştıran belirli Windows cihazlara anında Windows öğreticisi'ne bakın.
- Şablonlar hakkında daha ayrıntılı bilgi için bkz. genel Notification Hubs.