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.

  • Visual Studio for Mac

    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.

  1. 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.

  2. 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.

    Use Keychain Access to request a new certificate

    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.

  3. 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.

    Required certificate information

  4. 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.

    Choose a file name for the certificate

    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.

  1. 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.

    iOS Provisioning Portal App IDs page

  2. 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.

    iOS Provisioning Portal register new ID page

  3. 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.

      iOS Provisioning Portal register app ID page

    • Leküldéses értesítések: Ellenőrizze a Leküldéses értesítések lehetőséget a Képességek szakaszban.

      Form to register a new App ID

      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.

      Confirm new App ID

      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.

  4. 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:

  1. Hozzon létre egy .p12-t , amely közvetlenül a Notification Hubra tölthető fel.
  2. 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

  1. 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.

    Edit App ID page

  2. 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.

    Create certificate for App ID button

    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.

  3. 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.

  4. 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.

    Generated certificate download page

    A rendszer letölti és menti a tanúsítványt a számítógépre a Letöltések mappában.

    Locate certificate file in the Downloads folder

    Feljegyzés

    Alapértelmezés szerint a letöltött fejlesztési tanúsítvány neve aps_development.cer.

  5. 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ó:

    Keychain access certificates list showing new certificate

    Feljegyzés

    Bár a tanúsítványban szereplő név eltérő lehet, az Apple Development iOS Push Services előtagja lesz.

  6. 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.

    Export certificate as p12 format

    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

  1. Jegyezze fel a következő részleteket:

    • Alkalmazásazonosító-előtag (ez egy csapatazonosító)
    • Csomagazonosító
  2. 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 35. lépést.

  3. Kattintson a + gombra (vagy a Kulcs létrehozása gombra) egy új kulcs létrehozásához.

  4. 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.

  5. 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.

  6. A Kulcsok területen kattintson az imént létrehozott kulcsra (vagy egy meglévő kulcsra, ha ezt választotta).

  7. Jegyezze fel a kulcsazonosító értékét.

  8. 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

  1. 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ő.

  2. 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.

    Provisioning profile list

  3. 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.

    Select the App ID

  4. 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:

    1. 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.
    2. A Szoftver szakaszban válassza az Apple Development lehetőséget. Ezután válassza a Folytatás elemet.
    3. Az Új tanúsítvány létrehozása képernyőn válassza a Fájl kiválasztása lehetőséget.
    4. 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.
    5. Válassza a Folytatás lehetőséget.
    6. Töltse le a fejlesztési tanúsítványt, és jegyezze meg a mentés helyét.
  5. 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ő.

  6. 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.

  7. 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.

  8. 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.

    Choose a provisioning profile name

  9. 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.

  10. 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.

  1. Jelentkezzen be az Azure Portalra.

  2. Válassza az Összes szolgáltatás lehetőséget a bal oldali menüben. A screenshot showing select All Services for an existing namespace.

  3. Í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 screenshot showing how to filter for notification hubs.

  4. A Notification Hubs lapon válassza a Létrehozás lehetőséget az eszköztáron.

    A screenshot showing how to create a new notification hub.

  5. Az Értesítési központ lap Alapismeretek lapján hajtsa végre a következő lépéseket:

    1. 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.

    2. Adja meg az új névtér egyedi nevét a Névtér részletei mezőben.

    3. 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.

    4. 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.

      Screenshot showing notification hub details.

    5. 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.

    6. 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.

      Screenshot showing availability zone details.

    7. Válassza a Létrehozás lehetőséget.

  6. 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

  1. Válassza a Tanúsítvány elemet.

  2. Válassza a fájl ikont.

  3. Válassza ki a korábban exportált .p12 fájlt, majd válassza a Megnyitás lehetőséget.

  4. Ha szükséges, adja meg a megfelelő jelszót.

  5. Válassza a Védőfal módot.

    Configure APNs certification in Azure portal

  6. Válassza a Mentés lehetőséget.

2. LEHETŐSÉG: Jogkivonatalapú hitelesítés használata

  1. Válassza a Jogkivonat lehetőséget.

  2. Adja meg a korábban beszerzett alábbi értékeket:

    • Kulcsazonosító
    • Csomagazonosító
    • Csapatazonosító
    • Jogkivonat
  3. Tesztkörnyezet kiválasztása

  4. 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

  1. 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.

    Visual Studio - Select Application Type

  2. Adja meg az alkalmazás nevét és szervezetazonosítóját, majd kattintson a Tovább gombra, majd a Létrehozás gombra

  3. 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.

    Visual Studio- iOS App Config

  4. 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.

    Visual Studio- iOS Entitlements Config

  5. 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.

  6. 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 a hubnameDefaultListenSharedAccessSignature 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>";
    
  7. In AppDelegate.cs, add the következő using utasítás:

    using WindowsAzure.Messaging.NotificationHubs;
    using UserNotifications
    
  8. Hozzon létre egy implementációt a MSNotificationHubDelegate következőben AppDelegate.cs:

    public class AzureNotificationHubListener : MSNotificationHubDelegate
    {
        public override void DidReceivePushNotification(MSNotificationHub notificationHub, MSNotificationHubMessage message)
        {
    
        }
    }
    
  9. Frissítsen AppDelegate.csa FinishedLaunching() 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;
    }
    
  10. In AppDelegate.cs, implementálja az DidReceivePushNotification osztály metódusát AzureNotificationHubListener :

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

Azure portal - Test Send

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: