Share via


Regisztrációkezelés

Ez a témakör azt ismerteti, hogyan regisztrálhat eszközöket az értesítési központokban a leküldéses értesítések fogadásához. A témakör magas szinten ismerteti a regisztrációkat, majd bemutatja az eszközök regisztrálásának két fő mintáját: az eszközről való regisztrálást közvetlenül az értesítési központba, és az alkalmazás háttérrendszerén keresztüli regisztrációt.

Mi az az eszközregisztráció?

A regisztráció egy értesítési központ alentitása, és egy eszköz PNS-leíróját (például ChannelURI, eszközjogkivonat, GCM registrationId) társítja címkékkel és esetleg sablonnal. A címkék segítségével az értesítéseket a megfelelő eszközleírókhoz irányíthatja. További információ: Útválasztási és címkekifejezések. A sablonok a regisztrációnkénti átalakítás megvalósításához használhatók. További információért lásd a Sablonok szakaszt.

Fontos megjegyezni, hogy a regisztrációk átmenetiek. Az általuk tartalmazott PNS-leírókhoz hasonlóan a regisztrációk lejárnak. Az értesítési központban a regisztrációhoz szükséges élettartamot legfeljebb 90 napig állíthatja be. Ez a korlát azt jelenti, hogy rendszeresen frissíteni kell őket, és azt is, hogy nem lehetnek az egyetlen fontos információtárolók. Ez az automatikus lejárat a mobilalkalmazás eltávolításakor is leegyszerűsíti a törlést.

A regisztrációknak tartalmazniuk kell az egyes eszközök/csatornák legújabb PNS-leíróit. Mivel a PNS-leírók csak az eszközön lévő ügyfélalkalmazásban szerezhetők be, a regisztrációk kezelésének egyik módja közvetlenül az adott ügyfélalkalmazáson van. Másfelől a címkékhez kapcsolódó biztonsági megfontolások és üzleti logika megkövetelik a regisztráció kezelését az alkalmazás háttérrendszerében. A következő szakasz ezt a két módszert ismerteti.

Regisztrációkezelés az eszközről

Az ügyfélalkalmazások regisztrációinak kezelésekor a háttérrendszer csak az értesítések küldéséért felelős. Az ügyfélalkalmazások naprakészen tartják a PNS-kezelőket, és regisztrálnak a címkékre. Az alábbi képen ez a minta látható.

Registration Management

Az eszköz először lekéri a PNS-leírót a PNS-ből, majd közvetlenül regisztrál az értesítési központban. A regisztráció sikeres befejezése után az alkalmazás háttérrendszere értesítést küldhet a regisztrációról. Az értesítések küldéséről további információt az Útválasztás és a Címkekifejezések című témakörben talál.

Vegye figyelembe, hogy ebben az esetben csak a Figyelés jogosultságokkal fér hozzá az értesítési központokhoz az eszközről. További információ: Biztonság.

A következő kód regisztrálja az eszközt a Notification Hubs API-referenciák használatával:

await hub.RegisterNativeAsync(channelUri, tags);
[hub registerNativeWithDeviceToken:deviceToken tags:nil completion:^(NSError* error) {
    if (error != nil) {
        NSLog(@"Error registering for notifications: %@", error);
    }
}];

hub.register(regid, tags);

Ezek a metódusok létrehoznak vagy frissítenek egy regisztrációt ahhoz az eszközhöz, amelyen meghívják őket. Ez azt jelenti, hogy a leíró vagy a címkék frissítéséhez felül kell írnia a teljes regisztrációt. Ne feledje, hogy a regisztrációk átmenetiek, ezért mindig rendelkeznie kell egy megbízható tárolóval (az eszközön vagy az alkalmazás háttérrendszerében található helyi tárolóval), amely az adott eszközhöz szükséges aktuális címkékkel rendelkezik. A regisztrációk frissítésére vonatkozó részletesebb példákért tekintse meg a Breaking News oktatóanyagát.

A REST API-k használatával is regisztrálhat az eszközről. További információ: How to Use the Notification Hubs REST Interface.

Az alábbi forgatókönyv-oktatóanyagok részletes útmutatást nyújtanak az ügyfélről történő regisztrációhoz:

Sablonok

Ha sablonokat szeretne használni, minden regisztráció egy-egy sablont jelöl. Ez azt jelenti, hogy ha az eszköz két sablont használ, minden sablont külön kell regisztrálnia a saját PNS-leírójával és címkekészletével.

Natív (azaz sablon nélküli) regisztrációk esetén a sablonok regisztrációs módszerei meglévő regisztrációkat hoznak létre vagy frissítenek. A különböző sablonok megcélzásához meg kell adnia egy sablonnevet a regisztráció során. Ha több sablont szeretne fenntartani ugyanahhoz az eszközhöz, különböző neveket fog megadni.

Fontos

Sablonok használata esetén nem kell regisztrálnia az eszközt az előző szakaszban látható módon. Ezt a regisztrációt csak akkor használja a rendszer, ha natív értesítéseket küld (platformspecifikus formátumban küldött értesítéseket).

A következő kód regisztrálja az eszközt a Notification Hubs API-referenciák használatával:

await hub.RegisterTemplateAsync(channelUri, template, templateName, tags);
[hub registerTemplateWithDeviceToken:deviceToken name:templateName jsonBodyTemplate: template expiryTemplate:nil tags:nil completion:^(NSError* error) {
    if (error != nil) {
        NSLog(@"Error registering for notifications: %@", error);
    }
}];

hub.registerTemplate(regId, templateName, template, tags);

Vegye figyelembe, hogy az egyes regisztrációs hívások a PNS-leíró és a választható címkék mellett az értesítés törzsének sablonját és a sablon nevét is biztosítják. Ezenkívül minden platform további tulajdonságokkal is rendelkezhet, amelyek a sablon részét képezik. A Windows Store (WNS használatával) és a Windows Phone-telefon 8 (MPNS használatával) esetén további fejlécek is részei lehetnek a sablonnak. APN-k esetén a lejárati tulajdonságot konstansra vagy sablonkifejezésre is beállíthatja.

A sablonmezők módosítására vonatkozó utasításokért tekintse meg az API-referenciákat vagy a Notification Hubs REST API-jait.

Másodlagos csempék Windows Áruházbeli alkalmazásokhoz

Az Windows Store-ügyfélalkalmazások esetében az értesítések másodlagos csempékre való küldése megegyezik az elsődleges csempékre való küldésével. A natív és a sablonregisztrációk is támogatottak. Az egyetlen különbség az, hogy a másodlagos csempék eltérő ChannelUri-azonosítóval rendelkeznek, amelyet az ügyfélalkalmazás SDK-ja transzparensen kezel.

Magas szinten az előző szakaszokban megadott összes információ másodlagos csempékkel működik, és meghívja a megfelelő metódusokat a Microsoft.WindowsAzure.Messaging.NotificationHub.SecondaryTiles szótártulajdonságban közzétett objektumokon. Például:

await hub.SecondaryTiles["myTileId"].RegisterNativeAsync(new string[] {"Yankees"});
await hub.SecondaryTiles["myTileId"].RegisterTemplateAsync(buildToastTemplate(), "toastTemplate", new string[] {"RedSox"});

A SecondaryTiles szótár ugyanazt a TileId azonosítót használja, mint a SecondaryTiles objektum létrehozásához a Windows Store alkalmazásban.

Az elsődleges ChannelUri-hez hasonlóan a másodlagos csempék ChannelUri-jai is bármikor változhatnak. Ahhoz, hogy az ügyfélalkalmazás-regisztrációk naprakészek maradjanak az értesítési központban, az eszköznek frissítenie kell őket a másodlagos csempék aktuális ChannelUri-jaival.

Megjegyzés

Ha az alkalmazás inaktív, törölheti a másodlagos csempéket. A megfelelő regisztrációk nem eredményeznek értesítéseket, és az értesítési központok automatikusan törlik őket.

Az eszközről történő regisztráció hátrányai

Az eszközről történő regisztráció a legegyszerűbb módszer, de van néhány hátránya.

Az első hátránya, hogy az ügyfélalkalmazás csak akkor tudja frissíteni a címkéit, ha az alkalmazás aktív. Ha például egy felhasználó két olyan eszközzel rendelkezik, amelyek a sportcsapatokhoz kapcsolódó címkéket regisztrálnak, amikor az első eszköz regisztrál egy további címkére (például Seahawks), a második eszköz nem kapja meg az értesítéseket a Seahawksról, amíg a második eszközön futó alkalmazást nem hajtják végre másodszor. Általánosságban elmondható, hogy ha a címkéket több eszköz is érinti, a címkék háttérrendszerből történő kezelése kívánatos lehetőség.

Az ügyfélalkalmazás regisztrációkezelésének második hátránya az, hogy mivel az alkalmazások feltörhetők, a regisztráció adott címkékre történő biztonságossá tétele különös gondosságot igényel, amint azt a "Címkeszintű biztonság" című szakaszban ismertetik.

Regisztrációkezelés az alkalmazás háttérrendszeréből

A háttérrendszer regisztrációinak kezeléséhez további kódot kell írni. Az eszközről származó alkalmazásnak minden indításkor meg kell adnia a frissített PNS-leírót a háttérrendszernek (címkékkel és sablonokkal együtt), és a háttérrendszernek frissítenie kell ezt a leírót Service Bus. Az alábbi kép ezt a tervet szemlélteti.

Registration Management

A háttérrendszerből származó regisztrációk kezelésének előnye, hogy a címkéket akkor is módosíthatja a regisztrációkra, ha az eszközön lévő megfelelő alkalmazás inaktív, és hitelesítheti az ügyfélalkalmazást, mielőtt címkét ad a regisztrációhoz.

Az alkalmazás háttérrendszerében alapszintű CRUDS-műveleteket hajthat végre a regisztrációkon. Például:

var hub = NotificationHubClient.CreateClientFromConnectionString("{connectionString}", "hubName");
            
// create a registration description object of the correct type, e.g.
var reg = new WindowsRegistrationDescription(channelUri, tags);

// Create
await hub.CreateRegistrationAsync(reg);

// Get by id
var r = await hub.GetRegistrationAsync<RegistrationDescription>("id");

// update
r.Tags.Add("myTag");

// update on hub
await hub.UpdateRegistrationAsync(r);

// delete
await hub.DeleteRegistrationAsync(r);

Használhatja a Node-ot vagy a REST API-kat is.

Fontos

A háttérrendszernek kezelnie kell a regisztrációs frissítések közötti egyidejűséget. Service Bus optimista egyidejűséget biztosít a regisztrációkezeléshez. A HTTP szintjén ez az ETag regisztrációkezelési műveletekre való használatával valósul meg. Ezt a funkciót a Microsoft SDK-k transzparens módon használják, ami kivételt jelent, ha egy frissítést egyidejűségi okokból elutasítanak. Az alkalmazás háttérrendszere felelős a kivételek kezeléséért, és szükség esetén újra megkísérli a frissítést.

További források

Az alábbi forgatókönyv-oktatóanyagok részletes útmutatást nyújtanak az alkalmazás háttérrendszeréből történő regisztrációhoz: