Platformfüggetlen értesítések küldése az Azure Notification Hubs használatával

Ez az oktatóanyag az előző, Értesítések küldése adott felhasználóknak az Azure Notification Hubs használatával című oktatóanyagra épül. Ez az oktatóanyag bemutatja, hogyan küldhet leküldéses értesítéseket az adott hitelesített felhasználóhoz regisztrált összes eszközre. Ez a megközelítés több kérést igényelt, hogy értesítést küldjön az egyes támogatott ügyfélplatformoknak. Az Azure Notification Hubs támogatja a sablonokat, amelyekkel megadhatja, hogy egy adott eszköz hogyan szeretne értesítéseket kapni. Ez a módszer leegyszerűsíti a platformfüggetlen értesítések küldését.

Ez a cikk bemutatja, hogyan használhatja ki a sablonok előnyeit az összes platformra vonatkozó értesítés küldéséhez. Ez a cikk egyetlen kéréssel küld platformsemleges értesítést. A sablonokról további információt a Notification Hubs áttekintésében talál.

Fontos

Windows Phone-telefon 8.1-s és korábbi projektek nem támogatottak a Visual Studio 2019-ben. További információ: Visual Studio 2019 platformcélzás és kompatibilitás.

Megjegyzés

A Notification Hubs használatával az eszközök több sablont is regisztrálhatnak ugyanazzal a címkével. Ebben az esetben egy, a címkét megcélzó bejövő üzenet több értesítést küld az eszközre, mindegyik sablonhoz egyet. Ez a folyamat lehetővé teszi, hogy ugyanazt az üzenetet több vizuális értesítésben is megjelenítse, például jelvényként és bejelentési értesítésként egy Windows Áruházbeli alkalmazásban.

Platformfüggetlen értesítések küldése sablonok használatával

Megjegyzés

A Microsoft Leküldéses értesítési szolgáltatás (MPNS) elavult, és már nem támogatott.

Ez a szakasz az Értesítések küldése adott felhasználóknak az Azure Notification Hubs használatával című oktatóanyagban létrehozott mintakódot használja. A teljes mintát letöltheti a GitHubról.

Ha sablonokkal szeretne platformfüggetlen értesítéseket küldeni, tegye a következőket:

  1. A Visual Studióban a Megoldáskezelőbontsa ki a Controllers mappát, majd nyissa meg a RegisterController.cs fájlt.

  2. Keresse meg a kódblokkot az Put új regisztrációt létrehozó metódusban, majd cserélje le a switch tartalmat a következő kódra:

    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);
    }
    

    Ez a kód meghívja a platformspecifikus metódust, hogy natív regisztráció helyett sablonregisztrációt hozzon létre. Mivel a sablonregisztrációk natív regisztrációkból származnak, nem kell módosítania a meglévő regisztrációkat.

  3. A MegoldáskezelőControllers mappájában nyissa meg a NotificationsController.cs fájlt. Cserélje le az Post metódust az alábbi kódra:

    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);
    }
    

    Ez a kód egyszerre küld értesítést az összes platformnak. Nem ad meg natív hasznos adatokat. A Notification Hubs a regisztrált sablonokban megadott címkeértékkel rendelkező összes eszközre létrehozza és kézbesíti a megfelelő hasznos adatokat.

  4. Tegye közzé újra a webes API-projektet.

  5. Futtassa újra az ügyfélalkalmazást annak ellenőrzéséhez, hogy a regisztráció sikeres volt-e.

  6. Ha szeretné, helyezze üzembe az ügyfélalkalmazást egy második eszközön, majd futtassa az alkalmazást. Minden eszközön megjelenik egy értesítés.

Következő lépések

Most, hogy befejezte ezt az oktatóanyagot, az alábbi cikkekben talál további információt a Notification Hubsról és a sablonokról: