Megosztás a következőn keresztül:


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:

Templates

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:

Templates

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

$(prop)

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.

$(prop, n)

Ahogy fentebb említettük, a szöveg explicit módon ki van vágva n karakterekkel, például $(title, 20) a címtulajdonság tartalmát 20 karakterre vágja.

.(prop, n)

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. .(title, 20) az "Ez az a címsor" bemeneti tulajdonsággal az Eredmény: Ez a cím.....

%(prop)

Hasonló ahhoz, $(name) hogy a kimenet URI-kódolású.

#(prop)

JSON-sablonokban használatos (például iOS és Android sablonokhoz).

Ez a függvény pontosan ugyanúgy működik, mint $(prop) korábban, kivéve, ha JSON-sablonokban (például Apple-sablonokban) használják. Ebben az esetben, ha ezt a függvényt nem a(z) "{","}" veszi körül (például ‘myJsonProperty’ : ‘#(name)’), és javascript formátumban értékeli ki a függvényt, regexp: (0|([1-9][0-9]*))(\.[0-9]+)?((e|E)(+|-)?[0-9]+)?akkor a kimeneti JSON egy szám.

Például a következő lesz ‘badge’ : 40 ( ‘badge : ‘#(name)’ és nem‘40‘).

‘text’ or “text”

Egy literál. A literálok tetszőleges, szimpla vagy dupla idézőjelek közé zárt szöveget tartalmaznak.

expr1 + expr2

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 {}. Például: {$(prop) + ‘ - ’ + $(prop2)}.