Sablonok
A sablonok lehetővé teszik, hogy az ügyfélalkalmazások pontosan megadják a megkapni kívánt értesítések pontos formátumát. A sablonok használatával az alkalmazások számos különböző előnnyel járhatnak, többek között a következők:
Platformfüggetlen háttérrendszer.
Személyre szabott értesítések.
Az ügyfélverzió függetlensége.
Egyszerű honosítás.
Ez a szakasz két részletes példát mutat be arra, hogyan lehet sablonokkal platformfüggetlen értesítéseket küldeni az összes eszközre különböző platformokon, és hogyan lehet személyre szabni a közvetítési értesítéseket az egyes eszközökre.
Sablonok használata platformfüggetlen
Leküldéses értesítések küldésének szokásos módja, ha minden küldendő értesítéshez egy adott hasznos adattartalomot küld a platformértesítési szolgáltatásoknak (WNS, APNS). Ha például riasztást szeretne küldeni az APNS-nek, a hasznos adat az alábbi űrlap JSON-objektuma:
{“aps”: {“alert” : “Hello!” }}
Ha hasonló bejelentési üzenetet szeretne küldeni egy Windows Store-alkalmazásra, a hasznos adatok a következők:
<toast>
<visual>
<binding template=\"ToastText01\">
<text id=\"1\">Hello!</text>
</binding>
</visual>
</toast>
Hasonló hasznos adatokat hozhat létre mpns (Windows Phone-telefon) és GCM (Android) platformokhoz.
Ez a követelmény arra kényszeríti az alkalmazás háttérrendszerét, hogy különböző hasznos adatokat állítson elő az egyes platformokhoz, és hatékonyan felelőssé teszi a háttérrendszert az alkalmazás megjelenítési rétegének egy részéért. Egyes problémák közé tartozik a honosítás és a grafikus elrendezések (különösen Windows Store-alkalmazások esetében, amelyek különböző típusú csempékre vonatkozó értesítéseket tartalmaznak).
A Notification Hubs-sablon funkció lehetővé teszi, hogy az ügyfélalkalmazás speciális regisztrációkat, úgynevezett sablonregisztrációkat hozzon létre, amelyek a címkéken kívül egy sablont is tartalmaznak. Az előző hasznos adatokra vonatkozó példák alapján az egyetlen platformfüggetlen információ a tényleges riasztási üzenet (Hello!). A sablon az értesítési központnak az adott ügyfélalkalmazás regisztrációjára vonatkozó platformfüggetlen üzenet formázására vonatkozó utasítások készlete. Az előző példában a platformfüggetlen üzenet egyetlen tulajdonság: message = Hello!.
Az alábbi kép a fenti folyamatot szemlélteti:
Az iOS ügyfélalkalmazás-regisztráció sablonja a következő:
{“aps”:{“alert”:”$(message)”}}
Az Windows Store-ügyfélalkalmazás hasonló sablonja a következő:
<toast>
<visual>
<binding template=\"ToastText01\">
<text id=\"1\">$(message)</text>
</binding>
</visual>
</toast>
Vegye figyelembe, hogy a tényleges üzenet a kifejezés $(message)
helyébe lép. Ez a kifejezés arra utasítja az Értesítési központot, hogy minden alkalommal, amikor üzenetet küld ennek a regisztrációnak, készítsen egy üzenetet, amely ezt a sablont követi.
Az ügyfélalkalmazások több regisztrációt is létrehozhatnak több sablon használatához; például a riasztási üzenetek sablonja és a csempefrissítések sablonja. Az ügyfélalkalmazások a natív regisztrációkat (sablon nélküli regisztrációkat) és a sablonregisztrációkat is kombinálhatják.
Megjegyzés
Az Értesítési központ minden regisztrációhoz egy értesítést küld anélkül, hogy figyelembe venné, hogy ugyanahhoz az ügyfélalkalmazáshoz tartoznak-e. Ez a viselkedés a platformfüggetlen értesítések további értesítésekké való lefordítására használható. Például az értesítési központnak küldött platformfüggetlen üzenetek zökkenőmentesen lefordíthatók bejelentési riasztásokban és csempefrissítésekben anélkül, hogy a háttérrendszernek tisztában kellene lennie vele. Vegye figyelembe, hogy egyes platformok (például iOS) több értesítést is összecsukhatnak ugyanahhoz az eszközhöz, ha rövid időn belül küldik őket.
Sablonok használata személyre szabáshoz
A sablonok használatának egy másik előnye, hogy a Notification Hubs használatával személyre szabhatja az értesítések regisztrációnkénti személyre szabását. Vegyünk például egy időjárási alkalmazást, amely egy adott helyen jeleníti meg az időjárási körülményeket tartalmazó csempét. A felhasználók választhatnak a Celsius- vagy Fahrenheit-fokok és az egy- vagy ötnapos előrejelzés között. Sablonok használatával minden ügyfélalkalmazás telepítése regisztrálhat a szükséges formátumra (1 napos Celsius, 1 napos Fahrenheit, 5 napos Celsius, 5 napos Fahrenheit), és a háttérrendszer egyetlen üzenetet küldhet, amely tartalmazza a sablonok kitöltéséhez szükséges összes információt (például egy ötnapos előrejelzést Celsius- és Fahrenheit-fokokkal).
Az egynapos, Celsius-hőmérséklettel rendelkező előrejelzés sablonja a következő:
<tile>
<visual>
<binding template="TileWideSmallImageAndText04">
<image id="1" src="$(day1_image)" alt="alt text"/>
<text id="1">Seattle, WA</text>
<text id="2">$(day1_tempC)</text>
</binding>
</visual>
</tile>
Az értesítési központnak küldött üzenet a következő tulajdonságokat tartalmazza:
Day1_image
Day1_tempC
Day1_tempF
Day2_image
Day2_tempC
…
Ennek a mintának a használatával a háttérrendszer csak egyetlen üzenetet küld anélkül, hogy az alkalmazás felhasználóinak konkrét személyre szabási beállításokat kellene tárolniuk. Az alábbi kép ezt a forgatókönyvet szemlélteti:
Regisztrálás sablonokra
A sablonok regisztrálásáról további információt a Regisztrációkezelés című témakörben talál.
Sablonkifejezés nyelve
A sablonok nem tartalmazhatnak sztringeket. Ezek XML- vagy JSON-dokumentumokra korlátozódnak. Emellett csak bizonyos helyeken helyezhet el kifejezéseket; például csomópontattribútumok vagy XML-értékek, A JSON sztringtulajdonság-értékei.
A következő például nem érvényes XML-sablon:
<tile>
<visual>
<binding $(property)>
<text id="1">Seattle, WA</text>
</binding>
</visual>
</tile>
A következő szakaszban leírtak szerint az összefűzés használatakor a kifejezéseket szögletes zárójelekbe kell csomagolni. Például:
<tile>
<visual>
<binding template="ToastText01">
<text id="1">{'Hi, ' + $(name)}</text>
</binding>
</visual>
</tile>
A JSON hasonló kódja a következőképpen jelenik meg:
{"aps":{"alert":"{'Hi, ' + $(name)}"}}
Az alábbi táblázat a sablonokban engedélyezett nyelvet mutatja be:
Kifejezés | Leírás |
---|---|
|
Hivatkozás egy adott nevű eseménytulajdonságra. A tulajdonságnevek nem megkülönböztetik a kis- és nagybetűket. Ez a kifejezés a tulajdonság szöveges értékével vagy üres sztringgel oldható fel, ha a tulajdonság nincs jelen. |
|
Ahogy fentebb említettük, a szöveg explicit módon ki van vágva n karakterekkel, például |
|
Ahogy fentebb említettük, a szöveg három ponttal van utótagolva, miközben ki van vágva. A levágott sztring és az utótag teljes mérete nem haladja meg az n karaktert. |
|
Hasonló ahhoz, |
#(prop) |
JSON-sablonokban használatos (például iOS és Android sablonokhoz). Ez a függvény pontosan ugyanúgy működik, mint Például a következő lesz |
|
Egy literál. A literálok tetszőleges, szimpla vagy dupla idézőjelek közé zárt szöveget tartalmaznak. |
|
Az összefűzési operátor két kifejezést egyetlen sztringbe illeszt. A kifejezések az előző űrlapok bármelyike lehetnek. Összefűzés használatakor a teljes kifejezést körül kell venni |