Oktatóanyag: Leküldéses értesítések küldése Xamarin.iOS-alkalmazásokba az Azure Notification Hubs használatával
Áttekintés
Ez az oktatóanyag azt mutatja be, hogy hogyan használható az Azure Notification Hubs leküldéses értesítések küldésére iOS-alkalmazásokba. Létre fog hozni egy üres Xamarin.iOS-alkalmazást, amely leküldéses értesítéseket fogad az Apple Push Notification szolgáltatás (APNs) használatával.
Amikor végzett, képes lesz az értesítési központ használatával leküldéses értesítéseket küldeni az alkalmazást futtató összes eszközre. A befejezett kód a minta NotificationHubs alkalmazásban érhető el.
Ebben az oktatóanyagban kódot fog létrehozni/frissíteni az alábbi feladatok végrehajtásához:
- A tanúsítvány-aláírási kérelem fájljának létrehozása
- Alkalmazás regisztrálása leküldéses értesítésekhez
- Üzembe helyezési profil létrehozása az alkalmazáshoz
- Az értesítési központ konfigurálása iOS leküldéses értesítésekhez
- Teszt leküldéses értesítések küldése
Előfeltételek
Azure-előfizetés. Ha nem rendelkezik Azure-előfizetéssel, mindössze néhány perc alatt létrehozhat egy ingyenes Azure-fiókot a virtuális gép létrehozásának megkezdése előtt.
Az Xcode legújabb verziója
Az iOS 10-es (vagy újabb) verziójával kompatibilis eszköz
Tagság az Apple fejlesztői programjában.
-
Feljegyzés
Az iOS leküldéses értesítések konfigurációs követelményei miatt a mintaalkalmazást a szimulátor helyett egy fizikai iOS-eszközön (iPhone vagy iPad) kell üzembe helyeznie és tesztelnie.
Ennek az oktatóanyagnak az elvégzése a Xamarin.iOS-alkalmazásokkal kapcsolatos összes további Notification Hubs-oktatóanyag elvégzésének előfeltétele.
A tanúsítvány-aláírási kérelemfájl létrehozása
Az Apple Push Notification Service (APN-ek) tanúsítványokkal hitelesítik a leküldéses értesítéseket. Kövesse ezeket az utasításokat az értesítések küldéséhez és fogadásához szükséges leküldéses tanúsítvány létrehozásához. További információért lásd az Apple Push Notification szolgáltatás hivatalos dokumentációját.
Hozza létre a tanúsítvány-aláírási kérelem (CSR) fájlt, amelyet az Apple egy aláírt leküldéses tanúsítvány létrehozásához használ.
Futtassa a Kulcskarika-elérés eszközt a Mac gépén. Megnyitható a Utilities mappából vagy a Launchpad Másik mappájából.
Válassza a Kulcskarika-hozzáférés lehetőséget, bontsa ki a Tanúsítványsegédet, majd válassza a Tanúsítvány kérése hitelesítésszolgáltatótól lehetőséget.
Feljegyzés
Alapértelmezés szerint a Keychain Access kiválasztja a lista első elemét. Ez akkor lehet probléma, ha a Tanúsítványok kategóriában van, és az Apple Worldwide Developer Relations hitelesítésszolgáltató nem az első elem a listában. A CSR (tanúsítvány-aláírási kérelem) létrehozása előtt győződjön meg arról, hogy nincs kulcseleme, vagy az Apple Worldwide Developer Relations hitelesítésszolgáltatói kulcs van kiválasztva.
Válassza ki a felhasználói e-mail-címét, adja meg a Közös név értékét, győződjön meg arról, hogy a Lemezre mentett értéket adja meg, majd válassza a Folytatás lehetőséget. Hagyja üresen a hitelesítésszolgáltató e-mail-címét , mert nincs rá szükség.
Adja meg a CSR-fájl nevét a Mentés másként mezőben, válassza ki a helyet a Hol, majd a Mentés lehetőséget.
Ez a művelet a CSR-fájlt a kijelölt helyre menti. Az alapértelmezett hely az Asztal. Jegyezze meg a fájlhoz választott helyet.
Ezután regisztrálja az alkalmazást az Apple-ben, engedélyezze a leküldéses értesítéseket, és töltse fel az exportált CSR-t leküldéses tanúsítvány létrehozásához.
Alkalmazás regisztrálása leküldéses értesítésekhez
Ha leküldéses értesítéseket szeretne küldeni egy iOS-alkalmazásnak, regisztrálja az alkalmazást az Apple-ben, és regisztráljon leküldéses értesítésekre is.
Ha még nem regisztrálta az alkalmazást, keresse meg az iOS kiépítési portálját az Apple Developer Centerben. Jelentkezzen be a portálra az Apple ID azonosítójával, és válassza az Azonosítók lehetőséget. Ezután válassza ki + az új alkalmazás regisztrálását.
Az Új azonosító regisztrálása képernyőn válassza az Alkalmazásazonosítók választógombot. Ezután válassza a Folytatás elemet.
Frissítse a következő három értéket az új alkalmazáshoz, majd válassza a Folytatás lehetőséget:
Leírás: Írja be az alkalmazás leíró nevét.
Csomagazonosító: Adja meg a Szervezeti azonosító.Terméknév űrlap csomagazonosítóját az alkalmazásterjesztési útmutatóban leírtak szerint. A szervezetazonosító és a terméknév értékének meg kell egyeznie az Xcode-projekt létrehozásakor használt szervezeti azonosítóval és terméknévvel. Az alábbi képernyőképen a NotificationHubs-érték lesz a szervezet azonosítója, a GetStarted érték pedig a terméknév. Győződjön meg arról, hogy a Csomagazonosító érték megegyezik az Xcode-projektben lévő értékkel, hogy az Xcode a megfelelő közzétételi profilt használja.
Leküldéses értesítések: Ellenőrizze a Leküldéses értesítések lehetőséget a Képességek szakaszban.
Ez a művelet létrehozza az alkalmazásazonosítót, és kéri, hogy erősítse meg az információkat. Válassza a Folytatás lehetőséget, majd a Regisztráció elemet az új alkalmazásazonosító megerősítéséhez.
A Regisztráció lehetőség kiválasztása után az új alkalmazásazonosító sorelemként jelenik meg a Tanúsítványok, azonosítók és profilok lapon.
A Tanúsítványok, azonosítók & profilok lap Azonosítók területén keresse meg az imént létrehozott alkalmazásazonosító sorelemet, és válassza ki annak sorát az Alkalmazásazonosító konfigurációjának szerkesztése képernyő megjelenítéséhez.
Tanúsítvány létrehozása a Notification Hubshoz
Tanúsítvány szükséges ahhoz, hogy az értesítési központ működjön az APNS-sel. Ez kétféleképpen végezhető el:
- Hozzon létre egy .p12-t , amely közvetlenül a Notification Hubra tölthető fel.
- Hozzon létre egy .p8-at, amely a jogkivonatalapú hitelesítéshez (az újabb megközelítéshez) használható.
Az újabb megközelítés számos előnnyel rendelkezik (a tanúsítványok használatával szemben) az APNS tokenalapú (HTTP/2) hitelesítésében dokumentált módon. A lépések azonban mindkét megközelítés esetében meg lettek adva.
1. LEHETŐSÉG: Közvetlenül a Notification Hubra feltölthető .p12 leküldéses tanúsítvány létrehozása
Görgessen le a leküldéses értesítések jelölőnégyzethez, majd válassza a Tanúsítvány létrehozásához szükséges Konfigurálás lehetőséget.
Megjelenik az Apple Push Notification szolgáltatás SSL-tanúsítványainak ablaka . Válassza a Tanúsítvány létrehozása gombot a Fejlesztési SSL-tanúsítvány szakasz alatt.
Megjelenik az Új tanúsítvány létrehozása képernyő.
Feljegyzés
Ez az oktatóanyag egy fejlesztési tanúsítványt használ, amelyet az alkalmazás egy egyedi eszközjogkivonat létrehozásához használ. Ugyanez a folyamat használatos a termelési tanúsítvány regisztrálásához is. Csak arra ügyeljen, hogy ugyanazt a tanúsítványtípust használja az értesítések küldéséhez.
Válassza a Fájl kiválasztása lehetőséget, keresse meg azt a helyet, ahová az első feladatból mentette a CSR-fájlt, majd a betöltéshez kattintson duplán a tanúsítvány nevére. Ezután válassza a Folytatás elemet.
Miután a portál létrehozta a tanúsítványt, válassza a Letöltés gombot. Mentse a tanúsítványt, és jegyezze meg a mentés helyét.
A rendszer letölti és menti a tanúsítványt a számítógépre a Letöltések mappában.
Feljegyzés
Alapértelmezés szerint a letöltött fejlesztési tanúsítvány neve aps_development.cer.
Kattintson duplán a letöltött aps_development.cer leküldéses tanúsítványra. Ez a művelet telepíti az új tanúsítványt a kulcsláncba, ahogy az alábbi képen látható:
Feljegyzés
Bár a tanúsítványban szereplő név eltérő lehet, az Apple Development iOS Push Services előtagja lesz.
A kulcslánc-hozzáférési oldalon kattintson a jobb egérgombbal az új leküldéses tanúsítványra, melyet a Certificates (Tanúsítványok) kategóriában létrehozott. Válassza az Exportálás lehetőséget, nevezze el a fájlt, válassza a .p12 formátumot, majd válassza a Mentés lehetőséget.
Dönthet úgy, hogy jelszóval védi a tanúsítványt, de ez nem kötelező. Ha meg szeretné kerülni a jelszó létrehozását, kattintson az OK gombra . Jegyezze fel az exportált .p12 tanúsítvány nevét és helyét. ApN-ekkel történő hitelesítés engedélyezésére szolgálnak.
Feljegyzés
Előfordulhat, hogy a .p12 fájl neve és helye eltér az oktatóanyagban láthatótól.
2. LEHETŐSÉG: Jogkivonatalapú hitelesítéshez használható .p8-tanúsítvány létrehozása
Jegyezze fel a következő részleteket:
- Alkalmazásazonosító-előtag (ez egy csapatazonosító)
- Csomagazonosító
A Tanúsítványok, azonosítók és profilok területen kattintson a Kulcsok elemre.
Feljegyzés
Ha már rendelkezik az APNS-hez konfigurált kulccsal, használhatja újra a .p8 tanúsítványt, amelyet közvetlenül a létrehozása után töltött le. Ha igen, figyelmen kívül hagyhatja a 3–5. lépést.
Kattintson a + gombra (vagy a Kulcs létrehozása gombra) egy új kulcs létrehozásához.
Adjon meg egy megfelelő kulcsnévértéket, majd ellenőrizze az Apple Push Notifications szolgáltatás (APNs) beállítását, majd kattintson a Folytatás gombra, majd a következő képernyőn a Regisztráció elemre.
Kattintson a Letöltés gombra, majd helyezze át a .p8 fájlt (AuthKey_ előtaggal) egy biztonságos helyi könyvtárba, majd kattintson a Kész gombra.
Feljegyzés
Ügyeljen arra, hogy a .p8 fájl biztonságos helyen maradjon (és mentsen biztonsági másolatot). A kulcs letöltése után nem tölthető le újra a kiszolgálópéldány eltávolításakor.
A Kulcsok területen kattintson az imént létrehozott kulcsra (vagy egy meglévő kulcsra, ha ezt választotta).
Jegyezze fel a kulcsazonosító értékét.
Nyissa meg a .p8-tanúsítványt egy tetszőleges alkalmazásban, például a Visual Studio Code-ban , majd jegyezze fel a kulcs értékét. Ez az érték -----BEGIN PRIVATE KEY----- és -----END PRIVATE KEY----- között.
-----BEGIN PRIVATE KEY----- <key_value> -----END PRIVATE KEY-----
Feljegyzés
Ez az a tokenérték, amelyet később a Notification Hub konfigurálásához használunk.
A lépések végén a következő információkkal kell rendelkeznie az értesítési központ apNs-adatokkal való konfigurálásához:
- Csapatazonosító (lásd: 1. lépés)
- Csomagazonosító (lásd: 1. lépés)
- Kulcsazonosító (lásd a 7. lépést)
- Jogkivonat értéke , azaz a .p8 kulcs értéke (lásd a 8. lépést)
Üzembe helyezési profil létrehozása az alkalmazáshoz
Térjen vissza az iOS kiépítési portálra, válassza a Tanúsítványok, Azonosítók és profilok lehetőséget, válassza a Profilok lehetőséget a bal oldali menüből, majd válasszon + egy új profil létrehozásához. Megjelenik az Új kiépítési profil regisztrálása képernyő.
A kiépítési profil típusaként válassza az iOS-alkalmazásfejlesztést a Fejlesztés területen, majd válassza a Folytatás lehetőséget.
Ezután válassza ki az alkalmazásazonosító legördülő listából létrehozott alkalmazásazonosítót, majd válassza a Folytatás lehetőséget.
A Tanúsítványok kiválasztása ablakban válassza ki a kódaláíráshoz használt fejlesztési tanúsítványt, és válassza a Folytatás lehetőséget. Ez a tanúsítvány nem a létrehozott leküldéses tanúsítvány. Ha nem létezik, létre kell hoznia. Ha létezik tanúsítvány, ugorjon a következő lépésre. Fejlesztési tanúsítvány létrehozása, ha nem létezik:
- Ha azt látja , hogy nem érhetők el tanúsítványok, válassza a Tanúsítvány létrehozása lehetőséget.
- A Szoftver szakaszban válassza az Apple Development lehetőséget. Ezután válassza a Folytatás elemet.
- Az Új tanúsítvány létrehozása képernyőn válassza a Fájl kiválasztása lehetőséget.
- Keresse meg a korábban létrehozott tanúsítvány-aláírási kérelem tanúsítványát, jelölje ki, majd válassza a Megnyitás lehetőséget.
- Válassza a Folytatás lehetőséget.
- Töltse le a fejlesztési tanúsítványt, és jegyezze meg a mentés helyét.
Térjen vissza a Tanúsítványok, Azonosítók &profilok lapra, válassza a Bal oldali menü Profilok elemét, majd válasszon + új profil létrehozásához. Megjelenik az Új kiépítési profil regisztrálása képernyő.
A Tanúsítványok kiválasztása ablakban válassza ki az imént létrehozott fejlesztési tanúsítványt. Ezután válassza a Folytatás elemet.
Ezután válassza ki a teszteléshez használni kívánt eszközöket, majd válassza a Folytatás lehetőséget.
Végül válassza ki a profil nevét a Kiépítési profil neve területen, majd válassza a Létrehozás lehetőséget.
Az új kiépítési profil létrehozásakor válassza a Letöltés lehetőséget. Jegyezze meg a mentés helyét.
Keresse meg a kiépítési profil helyét, majd kattintson rá duplán az Xcode fejlesztői gépére való telepítéshez.
Értesítési központ létrehozása
Ebben a szakaszban létrehoz egy értesítési központot, és apN-ekkel konfigurálja a hitelesítést a .p12 leküldéses tanúsítvány vagy a tokenalapú hitelesítés használatával. Ha már létrehozott értesítési központot szeretne használni, ugorjon az 5. lépésre.
Jelentkezzen be az Azure Portalra.
Válassza az Összes szolgáltatás lehetőséget a bal oldali menüben.
Írja be a Notification Hubs kifejezést a Szűrőszolgáltatások szövegmezőbe. A szolgáltatás neve melletti csillag ikonnal felveheti a szolgáltatást a kedvencek szakaszba a bal oldali menüben. Válassza a Notification Hubs lehetőséget.
A Notification Hubs lapon válassza a Létrehozás lehetőséget az eszköztáron.
Az Értesítési központ lap Alapismeretek lapján hajtsa végre a következő lépéseket:
Az Előfizetésben válassza ki a használni kívánt Azure-előfizetés nevét, majd válasszon ki egy meglévő erőforráscsoportot, vagy hozzon létre egy újat.
Adja meg az új névtér egyedi nevét a Névtér részletei mezőben.
A névtér egy vagy több értesítési központot tartalmaz, ezért írja be a központ nevét a Notification Hub Részletei szakaszba.
Válasszon egy értéket a Hely legördülő listából. Ez az érték határozza meg azt a helyet, ahol létre szeretné hozni a központot.
Tekintse át a Rendelkezésre állási zónák lehetőséget. Ha olyan régiót választott, amely rendelkezésre állási zónákkal rendelkezik, a jelölőnégyzet alapértelmezés szerint be van jelölve. A rendelkezésre állási zónák fizetős funkciók, ezért további díjakat adnak hozzá a szinthez.
Válasszon vészhelyreállítási lehetőséget: Nincs, Párosított helyreállítási régió vagy Rugalmas helyreállítási régió. Ha a Párosított helyreállítási régiót választja, megjelenik a feladatátvételi régió. Ha a rugalmas helyreállítási régiót választja, a legördülő listából választhat a helyreállítási régiók listájából.
Válassza a Létrehozás lehetőséget.
Ha az üzembe helyezés befejeződött, válassza az Erőforrás megnyitása lehetőséget.
Az értesítési központ konfigurálása APN-adatokkal
A Notification Services területen válassza az Apple (APNS) lehetőséget, majd kövesse a megfelelő lépéseket a Korábban a Tanúsítvány létrehozása a Notification Hubshoz szakaszban kiválasztott módszer alapján.
Feljegyzés
Ha App Store-beli vagy Ad-Hoc terjesztési profillal hozza létre az alkalmazást, használja a Production for Application Módot. Ez lehetővé teszi, hogy az eszköz leküldéses értesítéseket küldjön azoknak a felhasználóknak, akik megvásárolták az alkalmazást az áruházból.
1. LEHETŐSÉG: .p12 leküldéses tanúsítvány használata
Válassza a Tanúsítvány elemet.
Válassza a fájl ikont.
Válassza ki a korábban exportált .p12 fájlt, majd válassza a Megnyitás lehetőséget.
Ha szükséges, adja meg a megfelelő jelszót.
Válassza a Védőfal módot.
Válassza a Mentés lehetőséget.
2. LEHETŐSÉG: Jogkivonatalapú hitelesítés használata
Válassza a Jogkivonat lehetőséget.
Adja meg a korábban beszerzett alábbi értékeket:
- Kulcsazonosító
- Csomagazonosító
- Csapatazonosító
- Jogkivonat
Tesztkörnyezet kiválasztása
Válassza a Mentés lehetőséget.
Most már apN-ekkel konfigurálta az értesítési központot. Az alkalmazás regisztrálásához és leküldéses értesítések küldéséhez kapcsolati sztring is rendelkezik.
Az alkalmazás csatlakoztatása az értesítési központhoz
Új projekt létrehozása
A Visual Studióban hozzon létre egy új iOS-projektet, és válassza az Egynézetes alkalmazás sablont, majd kattintson a Tovább elemre.
Adja meg az alkalmazás nevét és szervezetazonosítóját, majd kattintson a Tovább gombra, majd a Létrehozás gombra
A Megoldás nézetben kattintson duplán az Info.plist elemre, és az Identitás területen győződjön meg arról, hogy a csomagazonosító megegyezik a kiépítési profil létrehozásakor használt értékkel. Az Aláírás alatt győződjön meg arról, hogy a Developer-fiók ki van választva a Csoport területen, hogy az „Aláírás automatikus kezelése” be van jelölve, és hogy az Aláíró tanúsítvány és létesítési profil automatikusan ki van választva.
A Megoldás nézetben kattintson duplán a
Entitlements.plist
leküldéses értesítések engedélyezésére, és győződjön meg róla, hogy be van jelölve.Adja hozzá az Azure-üzenetkezelési csomagot. A Megoldásnézetben kattintson a jobb gombbal a projektre, és válassza a Hozzáadás>NuGet-csomagok hozzáadása lehetőséget. Keresse meg a Xamarin.Azure.NotificationHubs.iOS elemet, és adja hozzá a csomagot a projektjéhez.
Adjon hozzá egy új fájlt az osztályhoz, nevezze el
Constants.cs
, és adja hozzá a következő változókat, és cserélje le a sztringkonstans helyőrzőit ahubname
DefaultListenSharedAccessSignature
korábban feljegyzettre.// Azure app-specific connection string and hub path public const string ListenConnectionString = "<Azure DefaultListenSharedAccess Connection String>"; public const string NotificationHubName = "<Azure Notification Hub Name>";
In
AppDelegate.cs
, add the következő using utasítás:using WindowsAzure.Messaging.NotificationHubs; using UserNotifications
Hozzon létre egy implementációt a
MSNotificationHubDelegate
következőbenAppDelegate.cs
:public class AzureNotificationHubListener : MSNotificationHubDelegate { public override void DidReceivePushNotification(MSNotificationHub notificationHub, MSNotificationHubMessage message) { } }
Frissítsen
AppDelegate.cs
aFinishedLaunching()
következő kóddal:public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions) { // Set the Message listener MSNotificationHub.SetDelegate(new AzureNotificationHubListener()); // Start the SDK MSNotificationHub.Start(ListenConnectionString, NotificationHubName); return true; }
In
AppDelegate.cs
, implementálja azDidReceivePushNotification
osztály metódusátAzureNotificationHubListener
:public override void DidReceivePushNotification(MSNotificationHub notificationHub, MSNotificationHubMessage message) { // This sample assumes { aps: { alert: { title: "Hello", body: "World" } } } var alertTitle = message.Title ?? "Notification"; var alertBody = message.Body; var myAlert = UIAlertController.Create(alertTitle, alertBody, UIAlertControllerStyle.Alert); myAlert.AddAction(UIAlertAction.Create("OK", UIAlertActionStyle.Default, null)); UIApplication.SharedApplication.KeyWindow.RootViewController.PresentViewController(myAlert, true, null); }
Futtassa az alkalmazást az eszközön.
Teszt leküldéses értesítések küldése
Az Azure PortalTesztküldés lehetőségével tesztelheti az alkalmazásban az értesítések fogadását. A parancs egy leküldéses tesztértesítést küld az eszközre.
A leküldéses értesítések küldése általában olyan háttérszolgáltatásokon keresztül történik egy kompatibilis könyvtár használatával, mint a Mobile Apps vagy az ASP.NET. Ha a háttérszolgáltatáshoz nem érhető el kódtár, az értesítések küldéséhez használhatja közvetlenül a REST API-t is.
Következő lépések
Ebben az oktatóanyagban szórásos értesítéseket küldött a háttérrendszerben regisztrált iOS-eszközök mindegyikének. Ha szeretné megtudni, hogy hogyan küldhet értesítéseket adott iOS-eszközökre, lépjen tovább a következő oktatóanyagra: