Odesílání oznámení pro různé platformy pomocí Azure Notification Hubs
Tento kurz sestaví v předchozím kurzu a [pošle oznámení konkrétním uživatelům pomocí Azure Notification Hubs]. V tomto kurzu se dozvíte, jak zasílat oznámení do všech zařízení, která jsou zaregistrovaná konkrétnímu ověřenému uživateli. Tento přístup vyžadoval více požadavků pro odeslání oznámení na každou podporovanou klientskou platformu. Azure Notification Hubs podporuje šablony, pomocí kterých můžete určit, jak konkrétní zařízení chce dostávat oznámení. Tato metoda zjednodušuje odesílání oznámení pro různé platformy.
Tento článek ukazuje, jak využít výhod šablon k odeslání oznámení, které cílí na všechny platformy. V tomto článku se používá jedna žádost o odeslání neutrálního oznámení platformy. Podrobnější informace o šablonách najdete v tématu přehled Notification Hubs.
Důležité
Windows Phone projekty 8,1 a starší nejsou podporovány v Visual Studio 2019. další informace najdete v tématu cílení na platformu Visual Studio 2019 a kompatibilita.
Poznámka
Pomocí Notification Hubs může zařízení registrovat více šablon pomocí stejné značky. V takovém případě příchozí zpráva, která cílí na značku, má za následek doručování více oznámení do zařízení, jednu pro každou šablonu. tento proces umožňuje zobrazit stejnou zprávu ve více vizuálních oznámeních, jako je například označení jako označení a informační zpráva v aplikaci Windows Store.
Odesílání oznámení pro různé platformy pomocí šablon
Poznámka
Služba nabízených oznámení společnosti Microsoft (MPNS) je zastaralá a už není podporovaná.
V této části se používá vzorový kód, který jste vytvořili v tématu [posílání oznámení pro konkrétní uživatele pomocí kurzu služby Azure Notification Hubs] . Kompletní ukázku si můžete stáhnout z GitHub.
Pokud chcete odesílat oznámení pro různé platformy pomocí šablon, udělejte toto:
v Visual Studio v Průzkumník řešení rozbalte složku řadiče a pak otevřete soubor RegisterController. cs .
Vyhledejte blok kódu v
Putmetodě, která vytvoří novou registraci, a poté nahraďteswitchobsah následujícím kódem: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); }Tento kód volá metodu specifickou pro platformu pro vytvoření registrace šablony namísto nativní registrace. Vzhledem k tomu, že registrace šablon jsou odvozeny z nativních registrací, nemusíte měnit existující registrace.
V Průzkumník řešení ve složce Controllers otevřete soubor NotificationsController. cs . Nahraďte metodu
Postnásledujícím kódem: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); }Tento kód pošle oznámení na všechny platformy současně. Neurčíte nativní datovou část. Notification Hubs sestaví a doručuje správnou datovou část na každé zařízení s poskytnutou hodnotou značky, jak je uvedeno v zaregistrovaných šablonách.
Znovu publikujte projekt webového rozhraní API.
Opětovným spuštěním klientské aplikace ověřte, zda byla registrace úspěšná.
Volitelně nasaďte klientskou aplikaci do druhého zařízení a pak aplikaci spusťte. Na každém zařízení se zobrazí oznámení.
Další kroky
Teď, když jste dokončili tento kurz, získáte další informace o Notification Hubs a šablonách v těchto článcích:
- jiný scénář použití šablon najdete v kurzu nabízená oznámení na konkrétní Windows, na kterých běží Univerzální platforma Windows aplikace .
- Podrobnější informace o šablonách najdete v tématu přehled Notification Hubs.