Platformoverschrijdende meldingen verzenden met Azure Notification Hubs
Deze zelfstudie bouwt voort op de vorige zelfstudie, [Meldingen verzenden naar specifieke gebruikers met behulp van Azure Notification Hubs.] In deze zelfstudie wordt beschreven hoe u pushmeldingen kunt pushen naar alle apparaten die zijn geregistreerd bij een specifieke geverifieerde gebruiker. Voor deze benadering waren meerdere aanvragen vereist om een melding te verzenden naar elk ondersteund clientplatform. Azure Notification Hubs ondersteuning voor sjablonen, waarmee u kunt opgeven hoe een specifiek apparaat meldingen wil ontvangen. Deze methode vereenvoudigt het verzenden van platformoverschrijdende meldingen.
In dit artikel wordt gedemonstreerd hoe u kunt profiteren van sjablonen om een melding te verzenden die is gericht op alle platformen. In dit artikel wordt één aanvraag gebruikt om een platformneutrale melding te verzenden. Zie voor meer informatie over sjablonen Notification Hubs overzicht.
Belangrijk
Windows Phone projecten 8.1 en eerder worden niet ondersteund in Visual Studio 2019. Zie platformtargeting en compatibiliteit Visual Studio 2019voor meer informatie.
Notitie
Met Notification Hubs kan een apparaat meerdere sjablonen registreren met behulp van dezelfde tag. In dit geval wordt een inkomend bericht dat gericht is op de tag in meerdere meldingen bezorgd bij het apparaat, één voor elke sjabloon. Met dit proces kunt u hetzelfde bericht weergeven in meerdere visuele meldingen, zoals een badge en als een pop-upmelding in een Windows Store-app.
Platformoverschrijdende meldingen verzenden met behulp van sjablonen
Notitie
Microsoft Push Notification Service (MPNS) is afgeschaft en wordt niet meer ondersteund.
In deze sectie wordt gebruikgemaakt van de voorbeeldcode die u hebt gemaakt in de zelfstudie Meldingen verzenden naar specifieke gebruikers met [behulp van Azure Notification Hubs.] U kunt het volledige voorbeeld downloaden van GitHub.
Ga als volgt te werk om platformoverschrijdende meldingen te verzenden met behulp van sjablonen:
Vouw Visual Studio in Solution Explorer de map Controllers uit en open vervolgens het bestand RegisterController.cs.
Zoek het codeblok in de methode waarmee een nieuwe registratie wordt gemaakt en vervang vervolgens de
Putinhoud door de volgendeswitchcode: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); }Met deze code wordt de platformspecifieke methode aanroepen om een sjabloonregistratie te maken in plaats van een native registratie. Omdat sjabloonregistraties zijn afgeleid van systeemeigen registraties, hoeft u bestaande registraties niet te wijzigen.
Open Solution Explorer in de map Controllers het bestand NotificationsController.cs. Vervang de
Post-methode door de volgende code: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); }Met deze code wordt tegelijkertijd een melding naar alle platformen verzendt. U geeft geen native nettolading op. Notification Hubs bouwt en levert de juiste nettolading aan elk apparaat met de opgegeven tagwaarde, zoals opgegeven in de geregistreerde sjablonen.
Uw web-API-project opnieuw publiceren.
Voer de client-app opnieuw uit om te controleren of de registratie is geslaagd.
Implementeer de client-app desgewenst op een tweede apparaat en voer de app vervolgens uit. Op elk apparaat wordt een melding weergegeven.
Volgende stappen
Nu u deze zelfstudie hebt voltooid, kunt u meer lezen over Notification Hubs en sjablonen in deze artikelen:
- Zie de zelfstudie Pushmeldingen naar specifieke Windows-apparaten met Universal Windows Platform-toepassingen voor een ander scenario voor het gebruik van sjablonen.
- Zie overzicht voor meer informatie over Notification Hubs sjablonen.