Tutorial: Senden von Pushbenachrichtigungen an Xamarin.iOS-Apps mit Azure Notification HubsTutorial: Push notifications to Xamarin.iOS apps using Azure Notification Hubs

ÜbersichtOverview

In diesem Lernprogramm erfahren Sie, wie Sie mithilfe von Azure Notification Hubs Pushbenachrichtigungen an eine iOS-App senden.This tutorial shows you how to use Azure Notification Hubs to send push notifications to an iOS application. Sie erstellen eine leere Xamarin.iOS-App, die Pushbenachrichtigungen mithilfe des Apple-Pushbenachrichtigungsdiensts (Apple Push Notification Service, APNs) empfängt.You create a blank Xamarin.iOS app that receives push notifications by using the Apple Push Notification service (APNs).

Sobald Sie dieses Tutorial abgeschlossen haben, können Sie über Ihren Notification Hub Pushbenachrichtigungen an alle Geräte senden, die Ihre App ausführen.When you're finished, you are able to use your notification hub to broadcast push notifications to all the devices running your app. Der fertige Code steht in der NotificationHubs-Beispiel-App zur Verfügung.The finished code is available in the NotificationHubs app sample.

In diesem Tutorial erstellen/aktualisieren Sie Code, um die folgenden Aufgaben auszuführen:In this tutorial, you create/update code to do the following tasks:

  • Erstellen der Zertifikatsignierungsanforderungs-DateiGenerate the certificate signing request file
  • Registrieren der App für PushbenachrichtigungenRegister your app for push notifications
  • Erstellen eines Bereitstellungsprofils für die AppCreate a provisioning profile for the app
  • Konfigurieren Ihres Notification Hubs für iOS-PushbenachrichtigungenConfigure your notification hub for iOS push notifications
  • Senden von Test-PushbenachrichtigungenSend test push notifications

VoraussetzungenPrerequisites

  • Azure-Abonnement.Azure subscription. Falls Sie über kein Azure-Abonnement verfügen, können Sie ein kostenloses Azure-Konto erstellen, bevor Sie beginnen.If you don't have an Azure subscription, create a free Azure account before you begin.

  • Neueste Version von XcodeLatest version of Xcode

  • Mit iOS 10 (oder einer neueren Version) kompatibles GerätAn iOS 10 (or later version) compatible device

  • Apple-Entwicklerprogramm-MitgliedschaftApple Developer Program membership.

  • Visual Studio für MacVisual Studio for Mac

    Hinweis

    Die Beispielanwendung muss aufgrund von Konfigurationsanforderungen für iOS-Pushbenachrichtigungen auf einem physischem iOS-Gerät (iPhone oder iPad) bereitgestellt und getestet werden, anstatt im Simulator.Because of configuration requirements for iOS push notifications, you must deploy and test the sample application on a physical iOS device (iPhone or iPad) instead of in the simulator.

Die Absolvierung dieses Tutorials ist eine Voraussetzung für alle anderen Notification Hubs-Tutorials für Xamarin.iOS-Apps.Completing this tutorial is a prerequisite for all other Notification Hubs tutorials for Xamarin.iOS apps.

Erstellen der ZertifikatsignieranforderungsdateiGenerate the certificate-signing request file

Der Apple Push Notification Service (APNs) verwendet Zertifikate zur Authentifizierung Ihrer Pushbenachrichtigungen.The Apple Push Notification Service (APNs) uses certificates to authenticate your push notifications. Befolgen Sie diese Anweisungen, um das erforderliche Pushzertifikat zum Senden und Empfangen von Benachrichtigungen zu erstellen.Follow these instructions to create the necessary push certificate to send and receive notifications. Weitere Informationen zu diesen Konzepten finden Sie in der offiziellen Dokumentation zum Apple Push Notification Service.For more information on these concepts, see the official Apple Push Notification Service documentation.

Erstellen Sie die Zertifikatsignieranforderungsdatei (CSR-Datei), die von Apple zur Generierung eines signierten Pushzertifikats verwendet wird.Generate the Certificate Signing Request (CSR) file, which Apple uses to generate a signed push certificate.

  1. Führen Sie auf Ihrem Mac das Tool "Schlüsselbundverwaltung" aus.On your Mac, run the Keychain Access tool. Es kann im Ordner Dienstprogramme oder im Ordner Andere auf dem Launchpad geöffnet werden.It can be opened from the Utilities folder or the Other folder on the Launchpad.

  2. Wählen Sie die Option Schlüsselbundverwaltung aus, erweitern Sie Zertifikatsassistent, und wählen Sie dann Zertifikat einer Zertifizierungsinstanz anfordern aus.Select Keychain Access, expand Certificate Assistant, and then select Request a Certificate from a Certificate Authority.

    Anfordern eines neuen Zertifikats mithilfe der Schlüsselbundverwaltung

  3. Wählen Sie Ihre E-Mail-Adresse des Benutzers aus, und geben Sie den Wert für Allgemeiner Name ein. Vergewissern Sie sich, dass Saved to disk (Auf Datenträger gespeichert) aktiviert ist, und wählen Sie dann Weiter aus.Select your User Email Address, enter your Common Name value, make sure that you specify Saved to disk, and then select Continue. Lassen Sie das Feld CA Email Address (E-Mail der Zertifizierungsstelle) leer, da dieser Wert nicht erforderlich ist.Leave CA Email Address blank as it isn't required.

    Erforderliche Zertifikatinformationen

  4. Geben Sie im Feld Speichern unter einen Namen für die CSR-Datei ein, und wählen Sie unter Where (Ort) den Speicherort und anschließend Speichern aus.Enter a name for the CSR file in Save As, select the location in Where, and then select Save.

    Auswählen eines Dateinamens für das Zertifikat

    Dadurch wird die CSR-Datei am ausgewählten Speicherort gespeichert.This action saves the CSR file in the selected location. Der Standardspeicherort lautet Desktop.The default location is Desktop. Merken Sie sich den für diese Datei festgelegten Speicherort.Remember the location chosen for the file.

Registrieren Sie als Nächstes Ihre App bei Apple, aktivieren Sie Pushbenachrichtigungen, und laden Sie die exportierte CSR-Datei hoch, um ein Pushzertifikat zu erstellen.Next, register your app with Apple, enable push notifications, and upload the exported CSR to create a push certificate.

Registrieren der App für PushbenachrichtigungenRegister your app for push notifications

Um Pushbenachrichtigungen an eine iOS-App zu senden, registrieren Sie Ihre Anwendung bei Apple, und registrieren Sie sie auch für Pushbenachrichtigungen.To push notifications to an iOS app, register your application with Apple and also register for push notifications.

  1. Falls Sie Ihre App noch nicht registriert haben, navigieren Sie im Apple Developer Center zum iOS-Bereitstellungsportal.If you haven't already registered your app, browse to the iOS Provisioning Portal at the Apple Developer Center. Melden Sie sich anschließend mit Ihrer Apple-ID an, und wählen Sie zum Registrieren einer neuen App Identifiers (Bezeichner) > App IDs (App-IDs) > + aus.After that, sign in with your Apple ID, select Identifiers, select App IDs, and finally select + to register a new app.

    iOS-Bereitstellungsportal: Seite mit App-IDs

  2. Aktualisieren Sie die folgenden drei Werte für Ihre neue App, und wählen Sie dann Weiter aus:Update the following three values for your new app, and then select Continue:

    • Name: Geben Sie im Abschnitt App ID Description (App-ID-Beschreibung) in das Feld Name einen beschreibenden Namen für Ihre App ein.Name: Type a descriptive name for your app in the Name box in the App ID Description section.

    • Bundle Identifier (Paket-ID): Geben Sie im Abschnitt Explicit App ID (Explizite App-ID) einen Wert für Bundle Identifier (Paket-ID) im Format <Organization Identifier>.<Product Name> (entsprechend den Angaben im Leitfaden zur App-Verteilung) ein.Bundle Identifier: In the Explicit App ID section, enter a Bundle Identifier of the form <Organization Identifier>.<Product Name> as mentioned in the App Distribution Guide. Die unter Organization Identifier (Organisationskennung) und Product Name (Produktname) eingegebenen Werte müssen der Organisationskennung und dem Produktnamen entsprechen, die Sie beim Erstellen des Xcode-Projekts verwenden.The Organization Identifier and Product Name values must match the organization identifier and product name you use when you create your Xcode project. Im folgenden Screenshot wird der Wert NotificationHubs als Organisationskennung und GetStarted als Produktname verwendet.In the following screenshot, the NotificationHubs value is used as an organization identifier and the GetStarted value is used as the product name. Stellen Sie sicher, dass der Wert für Bundle Identifier (Paket-ID) mit dem Wert in Ihrem Xcode-Projekt übereinstimmt, sodass Xcode das richtige Veröffentlichungsprofil verwendet.Make sure the Bundle Identifier value matches the value in your Xcode project, so that Xcode will use the correct publishing profile.

    • Push Notifications (Pushbenachrichtigungen): Aktivieren Sie die Option Push Notifications (Pushbenachrichtigungen) im Bereich App Services.Push Notifications: Check the Push Notifications option in the App Services section.

      Formular zum Registrieren einer neuen App-ID

      Hierdurch wird Ihre App-ID generiert, und Sie werden zur Bestätigung der Daten aufgefordert.This action generates your App ID and requests that you confirm the information. Wählen Sie Register (Registrieren) aus, um die neue App-ID zu bestätigen.Select Register to confirm the new App ID.

      Nachdem Sie Register (Registrieren) ausgewählt haben, wird der Bildschirm Registration complete (Registrierung abgeschlossen) geöffnet, wie in der folgenden Abbildung gezeigt.After you select Register, you see the Registration complete screen as shown in the following image. Wählen Sie Fertigaus.Select Done.

      Abgeschlossene App-ID-Registrierung mit Berechtigungen

  3. Suchen Sie im Developer Center unter App IDs (App-IDs) nach der erstellten App-ID, und wählen Sie die entsprechende Zeile aus.In the Developer Center, under App IDs, locate the app ID that you created and select its row.

    App-ID-Liste

    Wählen Sie die App-ID aus, um die App-Details anzuzeigen, und wählen Sie dann unten die Schaltfläche Edit (Bearbeiten) aus.Select the app ID to display the app details, and then select the Edit button at the bottom.

    Bearbeiten der Seite für App-IDs

  4. Scrollen Sie zum unteren Bildschirmrand, und wählen Sie im Abschnitt Development Push SSL Certificate (SSL-Pushzertifikat für die Entwicklung) die Schaltfläche Create Certificate (Zertifikat erstellen) aus.Scroll to the bottom of the screen and select the Create Certificate button under the Development Push SSL Certificate section.

    Schaltfläche zum Erstellen eines Zertifikats für die App-ID

    Der Assistent Add iOS Certificate (iOS-Zertifikat hinzufügen) wird angezeigt.You now see the Add iOS Certificate assistant.

    Hinweis

    In diesem Lernprogramm wird ein Entwicklungszertifikat verwendet.This tutorial uses a development certificate. Derselbe Prozess wird auch zum Registrieren eines Produktionszertifikats durchgeführt.The same process is used when registering a production certificate. Achten Sie darauf, dass Sie denselben Zertifikattyp beim Senden von Benachrichtigungen verwenden.Just make sure that you use the same certificate type when sending notifications.

  5. Klicken Sie auf Choose File (Datei auswählen), wechseln Sie zum Speicherort der in der ersten Aufgabe erstellten CSR-Datei, und wählen Sie dann Generate (Generieren).Select Choose File, browse to the location where you saved the CSR file from the first task, and then select Generate.

    CSR-Uploadseite für das generierte Zertifikat

  6. Wählen Sie nach der Erstellung des Zertifikats im Portal die Schaltfläche Download (Herunterladen) und anschließend Done (Fertig) aus.After the portal creates the certificate, select the Download button and then select Done.

    Downloadseite für das generierte Zertifikat

    Das Zertifikat wird heruntergeladen und auf Ihrem Computer im Ordner Downloads gespeichert.The certificate is downloaded and saved to your computer in your Downloads folder.

    Suchen der Zertifikatdatei im Ordner „Downloads“

    Hinweis

    Standardmäßig heißt das heruntergeladene Entwicklungszertifikat aps_development.cer.By default, the downloaded development certificate is named aps_development.cer.

  7. Wählen Sie das heruntergeladene Pushzertifikat aps_development.cer aus.Select the downloaded push certificate aps_development.cer.

    Das neue Zertifikat wird im Schlüsselbund installiert, wie in der folgenden Abbildung gezeigt:This action installs the new certificate in the Keychain, as shown in the following image:

    Zertifikatliste der Schlüsselbundverwaltung mit neuem Zertifikat

    Hinweis

    Der Name in Ihrem Zertifikat kann anders lauten, ihm wird jedoch Apple Development iOS Push Services vorangestellt.Although the name in your certificate might be different, the name will be prefixed with Apple Development iOS Push Services.

  8. Klicken Sie in der Kategorie Zertifikate in der Schlüsselbundverwaltung mit der rechten Maustaste auf das neu erstellte Pushzertifikat.In Keychain Access, right-click the new push certificate that you created in the Certificates category. Wählen Sie die Option Exportieren, benennen Sie die Datei, wählen Sie das Format .p12 aus, und wählen Sie dann die Option Speichern.Select Export, name the file, select the .p12 format, and then select Save.

    Exportieren des Zertifikats im p12-Format

    Notieren Sie sich den Dateinamen und den Speicherort des exportierten P12-Zertifikats,Make a note of the file name and location of the exported .p12 certificate. Sie werden zum Aktivieren der Authentifizierung mit APNs verwendet.They are used to enable authentication with APNs.

    Hinweis

    In diesem Tutorial wird eine Datei namens QuickStart.p12 erstellt.This tutorial creates a file named QuickStart.p12. Name und Ort Ihrer Datei können verschieden sein.Your file name and location might be different.

Erstellen eines Bereitstellungsprofils für die AppCreate a provisioning profile for the app

  1. Wählen Sie im iOS-Bereitstellungsportal die Optionen Provisioning Profiles (Bereitstellungsprofile) > All (Alle) > + aus, um ein neues Profil zu erstellen.In the iOS Provisioning Portal, select Provisioning Profiles, select All, and then select + to create a new profile. Der Assistent Add iOS Provisioning Profile (iOS-Bereitstellungsprofil hinzufügen) wird angezeigt.You see the Add iOS Provisioning Profile wizard.

    Bereitstellungsprofilliste

  2. Wählen Sie unter Development (Entwicklung) die Option iOS App Development (iOS-App-Entwicklung) als Bereitstellungsprofiltyp und dann Weiter aus.Select iOS App Development under Development as the provisioning profile type, and select Continue.

  3. Wählen Sie anschließend die von Ihnen erstellte App-ID in der Dropdownliste App ID (App-ID) und dann Weiter aus.Next, select the app ID you created from the App ID drop-down list, and select Continue.

    Auswählen der App-ID

  4. Wählen Sie im Fenster Select certificates (Zertifikate auswählen) das normalerweise für die Codesignatur verwendete Entwicklungszertifikat und dann Weiter aus.In the Select certificates window, select your usual development certificate that you used for code signing, and select Continue. Dabei handelt es sich nicht um das erstellte Pushzertifikat.This certificate isn't the push certificate you created.

    Auswählen des Zertifikats

  5. Wählen Sie nun die Geräte aus, die zum Testen verwendet werden sollen, und wählen Sie dann Weiter aus.Next, select the devices to use for testing, and select Continue.

    Auswählen der Geräte

  6. Geben Sie schließlich im Feld Profile Name (Profilname) einen Namen für das Profil ein, und wählen Sie Generate ( Generieren) aus.Finally, pick a name for the profile in Profile Name, and select Generate.

    Auswählen eines Bereitstellungsprofilnamens

  7. Nachdem das neue Bereitstellungsprofil erstellt wurde, wählen Sie es aus, um es herunterzuladen und auf Ihrem Xcode-Entwicklungscomputer zu installieren.When the new provisioning profile is created, choose to download and install it on your Xcode development machine. Wählen Sie dann Fertig aus.Then select Done.

    Herunterladen des Bereitstellungsprofils

Erstellen eines Notification HubsCreate a notification hub

In diesem Abschnitt erstellen Sie einen Notification Hub und konfigurieren die Authentifizierung mit APNs unter Verwendung des zuvor erstellten Pushzertifikats vom Typ „.p12“.In this section, you create a notification hub and configure authentication with APNs by using the .p12 push certificate that you previously created. Wenn Sie einen bereits erstellten Notification Hub verwenden möchten, können Sie mit Schritt 5 fortfahren.If you want to use a notification hub that you've already created, you can skip to step 5.

  1. Melden Sie sich beim Azure-Portal an.Sign in to the Azure portal.

  2. Wählen Sie im Menü auf der linken Seite die Option Alle Dienste und dann im Abschnitt Mobil die Option Notification Hubs aus.Select All services on the left menu, and then select Notification Hubs in the Mobile section. Wählen Sie das Sternsymbol neben dem Dienstnamen aus, um den Dienst im linken Menü zum Abschnitt FAVORITEN hinzuzufügen.Select the star icon next to the service name to add the service to the FAVORITES section on the left menu. Nachdem Notification Hubs unter FAVORITEN hinzugefügt wurde, können Sie diesen Eintrag im Menü auf der linken Seite auswählen.After you add Notification Hubs to FAVORITES, select it on the left menu.

    Azure-Portal – Auswählen von Notification Hubs

  3. Wählen Sie auf der Seite Notification Hubs in der Symbolleiste die Option Hinzufügen.On the Notification Hubs page, select Add on the toolbar.

    Notification Hubs – Symbolleistenschaltfläche „Hinzufügen“

  4. Führen Sie auf der Seite Notification Hub die folgenden Schritte aus:On the Notification Hub page, do the following steps:

    1. Geben Sie ins Feld Notification Hub einen Namen ein.Enter a name in Notification Hub.

    2. Geben Sie ins Feld Neuen Namespace erstellen einen Namen ein.Enter a name in Create a new namespace. Ein Namespace enthält mindestens einen Hub.A namespace contains one or more hubs.

    3. Wählen Sie im Dropdown-Listenfeld Standort einen Wert aus.Select a value from the Location drop-down list box. Dieser Wert gibt den Standort an, an dem der Hub erstellt werden soll.This value specifies the location in which you want to create the hub.

    4. Wählen Sie unter Ressourcengruppe eine vorhandene Ressourcengruppe aus, oder erstellen Sie einen Namen für eine neue Ressourcengruppe.Select an existing resource group in Resource Group, or create a name for a new resource group.

    5. Klicken Sie auf Erstellen.Select Create.

      Azure-Portal – Festlegen von Eigenschaften für den Notification Hub

  5. Wählen Sie Benachrichtigungen (Glockensymbol) und dann Zu Ressource wechseln aus.Select Notifications (the bell icon), and then select Go to resource. Sie können auch die Liste auf der Seite Notification Hubs aktualisieren und Ihren Hub auswählen.You can also refresh the list on the Notification Hubs page and select your hub.

    Azure-Portal – Benachrichtigungen -> Zu Ressource wechseln

  6. Wählen Sie in der Liste die Option Zugriffsrichtlinien aus.Select Access Policies from the list. Notieren Sie sich die beiden Verbindungszeichenfolgen, die für Sie verfügbar sind.Note that the two connection strings are available to you. Sie werden später für die Behandlung von Pushbenachrichtigungen benötigt.You'll need them later to handle push notifications.

    Wichtig

    Verwenden Sie nicht die Richtlinie DefaultFullSharedAccessSignature in Ihrer Anwendung.Do not use the DefaultFullSharedAccessSignature policy in your application. Diese ist nur für die Verwendung in Ihrem Back-End vorgesehen.This is meant to be used in your back end only.

    Azure-Portal – Verbindungszeichenfolgen für den Notification Hub

Konfigurieren Ihres Notification Hubs mit APNs-InformationenConfigure your notification hub with APNs information

  1. Wählen Sie unter Notification Services die Option Apple (APNS) aus.Under Notification Services, select Apple (APNS).

  2. Wählen Sie Certificateaus.Select Certificate.

  3. Wählen Sie das Dateisymbol aus.Select the file icon.

  4. Wählen Sie die zuvor exportierte Datei vom Typ „.p12“ aus.Select the .p12 file that you exported earlier.

  5. Geben Sie das richtige Kennwort an.Specify the correct password.

  6. Wählen Sie den Modus Sandbox aus.Select Sandbox mode. Verwenden Sie den Modus Produktion nur dann, wenn Sie Pushbenachrichtigungen an Benutzer senden möchten, die Ihre App im Store erworben haben.Use the Production mode only if you want to send push notifications to users who purchased your app from the store.

    Konfigurieren der APNs-Zertifizierung im Azure-Portal

Sie haben Ihren Notification Hub mit APNs-Informationen konfiguriert.You've now configured your notification hub with APNs. Sie verfügen außerdem über die Verbindungszeichenfolgen, die Sie zum Registrieren Ihrer App und zum Senden von Pushbenachrichtigungen benötigen.You also have the connection strings to register your app and send push notifications.

Verbinden Ihrer App mit dem Notification HubConnect your app to the notification hub

Erstellen eines neuen ProjektsCreate a new project

  1. Erstellen Sie in Visual Studio ein neues iOS-Projekt, wählen Sie die Vorlage Einzelansicht-App aus, und klicken Sie auf Weiter.In Visual Studio, create a new iOS project and select the Single View App template, and click Next

    Visual Studio: Auswählen des Anwendungstyps

  2. Geben Sie Ihren App-Namen und die Organisations-ID ein, und klicken Sie anschließend auf Weiter > ErstellenEnter your App Name and Organization identifier, then click Next, then Create

  3. Doppelklicken Sie in der Projektmappenansicht auf Info.plist, und vergewissern Sie sich unter Identität, dass Ihre Paket-ID der ID entspricht, die beim Erstellen Ihres Bereitstellungsprofils verwendet wurde.From the Solution view, double-click Info.plist and under Identity make sure your Bundle Identifier matches the one used when creating your provisioning profile. Vergewissern Sie sich unter Signierung, dass unter Team Ihr Entwicklerkonto ausgewählt ist. Vergewissern Sie sich außerdem, dass das Kontrollkästchen für die automatische Signierungsverwaltung aktiviert ist und dass Ihr Signaturzertifikat und Ihr Bereitstellungsprofil automatisch ausgewählt wurden.Under Signing ensure that your Developer account is selected under Team, "Automatically manage signing" is selected and your Signing Certificate and Provisioning Profile are automatically selected.

    Visual Studio: iOS-App-Konfiguration

  4. Doppelklicken Sie in der Projektmappenansicht auf Entitlements.plist, und vergewissern Sie sich, dass Pushbenachrichtigungen aktivieren aktiviert ist.From the Solution view, double-click the Entitlements.plist and ensure that Enable Push Notifications is checked.

    Visual Studio: Entitlements-Konfiguration für iOS

  5. Fügen Sie das Azure-Messaging-Paket hinzu.Add the Azure Messaging package. Klicken Sie in der Projektmappenansicht mit der rechten Maustaste auf das Projekt, und wählen Sie Hinzufügen > NuGet-Pakete hinzufügen aus.In the Solution view, right-click the project and select Add > Add NuGet Packages. Suchen Sie nach Xamarin.Azure.NotificationHubs.iOS, und fügen Sie das Paket dem Projekt hinzu.Search for Xamarin.Azure.NotificationHubs.iOS and add the package to your project.

  6. Fügen Sie Ihrer Klasse eine neue Datei hinzu, und nennen Sie sie Constants.cs. Fügen Sie anschließend die folgenden Variablen hinzu, und ersetzen Sie die Platzhalter für Zeichenfolgenliterale durch Ihren Hubnamen (hubname) und den zuvor notierten Wert für DefaultListenSharedAccessSignature.Add a new file to your class, name it Constants.cs and add the following variables and replace the string literal placeholders with the hubname and the DefaultListenSharedAccessSignature noted earlier.

    // 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. Fügen Sie in AppDelegate.cs die folgende using-Anweisung hinzu:In AppDelegate.cs, add the following using statement:

    using WindowsAzure.Messaging;
    using UserNotifications
    
  8. Deklarieren Sie eine Instanz von SBNotificationHub:Declare an instance of SBNotificationHub:

    private SBNotificationHub Hub { get; set; }
    
  9. Aktualisieren Sie in AppDelegate.cs das Element FinishedLaunching() so, dass es dem folgenden Code entspricht:In AppDelegate.cs, update FinishedLaunching() to match the following code:

    public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions)
    {
        if (UIDevice.CurrentDevice.CheckSystemVersion(10, 0))
        {
            UNUserNotificationCenter.Current.RequestAuthorization(UNAuthorizationOptions.Alert | UNAuthorizationOptions.Badge | UNAuthorizationOptions.Sound,
                                                                    (granted, error) =>
            {
                if (granted)
                    InvokeOnMainThread(UIApplication.SharedApplication.RegisterForRemoteNotifications);
            });
        } else if (UIDevice.CurrentDevice.CheckSystemVersion (8, 0)) {
            var pushSettings = UIUserNotificationSettings.GetSettingsForTypes (
                    UIUserNotificationType.Alert | UIUserNotificationType.Badge | UIUserNotificationType.Sound,
                    new NSSet ());
    
            UIApplication.SharedApplication.RegisterUserNotificationSettings (pushSettings);
            UIApplication.SharedApplication.RegisterForRemoteNotifications ();
        } else {
            UIRemoteNotificationType notificationTypes = UIRemoteNotificationType.Alert | UIRemoteNotificationType.Badge | UIRemoteNotificationType.Sound;
            UIApplication.SharedApplication.RegisterForRemoteNotificationTypes (notificationTypes);
        }
    
        return true;
    }
    
  10. Überschreiben Sie in AppDelegate.cs die Methode RegisteredForRemoteNotifications():In AppDelegate.cs, override the RegisteredForRemoteNotifications() method:

    public override void RegisteredForRemoteNotifications(UIApplication application, NSData deviceToken)
    {
        Hub = new SBNotificationHub(Constants.ListenConnectionString, Constants.NotificationHubName);
    
        Hub.UnregisterAllAsync (deviceToken, (error) => {
            if (error != null)
            {
                System.Diagnostics.Debug.WriteLine("Error calling Unregister: {0}", error.ToString());
                return;
            }
    
            NSSet tags = null; // create tags if you want
            Hub.RegisterNativeAsync(deviceToken, tags, (errorCallback) => {
                if (errorCallback != null)
                    System.Diagnostics.Debug.WriteLine("RegisterNativeAsync error: " + errorCallback.ToString());
            });
        });
    }
    
  11. Überschreiben Sie in AppDelegate.cs die Methode ReceivedRemoteNotification():In AppDelegate.cs, override the ReceivedRemoteNotification() method:

    public override void ReceivedRemoteNotification(UIApplication application, NSDictionary userInfo)
    {
        ProcessNotification(userInfo, false);
    }
    
  12. Erstellen Sie in AppDelegate.cs die Methode ProcessNotification():In AppDelegate.cs, create the ProcessNotification() method:

    void ProcessNotification(NSDictionary options, bool fromFinishedLaunching)
    {
        // Check to see if the dictionary has the aps key.  This is the notification payload you would have sent
        if (null != options && options.ContainsKey(new NSString("aps")))
        {
            //Get the aps dictionary
            NSDictionary aps = options.ObjectForKey(new NSString("aps")) as NSDictionary;
    
            string alert = string.Empty;
    
            //Extract the alert text
            // NOTE: If you're using the simple alert by just specifying
            // "  aps:{alert:"alert msg here"}  ", this will work fine.
            // But if you're using a complex alert with Localization keys, etc.,
            // your "alert" object from the aps dictionary will be another NSDictionary.
            // Basically the JSON gets dumped right into a NSDictionary,
            // so keep that in mind.
            if (aps.ContainsKey(new NSString("alert")))
                alert = (aps [new NSString("alert")] as NSString).ToString();
    
            //If this came from the ReceivedRemoteNotification while the app was running,
            // we of course need to manually process things like the sound, badge, and alert.
            if (!fromFinishedLaunching)
            {
                //Manually show an alert
                if (!string.IsNullOrEmpty(alert))
                {
                    UIAlertView avAlert = new UIAlertView("Notification", alert, null, "OK", null);
                    avAlert.Show();
                }
            }
        }
    }
    

    Hinweis

    Sie können FailedToRegisterForRemoteNotifications() überschreiben, um Situationen wie beispielsweise eine fehlende Netzwerkverbindung zu behandeln.You can choose to override FailedToRegisterForRemoteNotifications() to handle situations such as no network connection. Dies ist besonders wichtig, wenn Benutzer Ihre Anwendung ggf. im Offlinemodus starten (beispielsweise im Flugzeug) und Sie spezifische Pushnachrichtenszenarien für Ihre App behandeln möchten.This is especially important where the user might start your application in offline mode (for example, Airplane) and you want to handle push messaging scenarios specific to your app.

  13. Führen Sie die App auf Ihrem Gerät aus.Run the app on your device.

Senden von Test-PushbenachrichtigungenSend test push notifications

Mit der Option Testsendevorgang im Azure-Portal können Sie den Empfang von Benachrichtigungen in Ihrer App testen.You can test receiving notifications in your app with the Test Send option in the Azure portal. Diese Option sendet zu Testzwecken eine Pushbenachrichtigung an Ihr Gerät.It sends a test push notification to your device.

Azure-Portal – Testsendung

Pushbenachrichtigungen werden normalerweise mithilfe einer kompatiblen Bibliothek über einen Back-End-Dienst wie Mobile Apps oder ASP.NET gesendet.Push notifications are normally sent in a back-end service like Mobile Apps or ASP.NET using a compatible library. Falls für Ihr Back-End keine Bibliothek verfügbar ist, können Sie Benachrichtigungsmeldungen auch direkt über die REST-API senden.If a library is not available for your back-end, you can also use the REST API directly to send notification messages.

Nächste SchritteNext steps

In diesem Tutorial haben Sie Broadcastbenachrichtigungen an alle iOS-Geräte gesendet, die beim Back-End registriert sind.In this tutorial, you sent broadcast notifications to all your iOS devices registered with the backend. Um zu erfahren, wie Sie Pushbenachrichtigungen an bestimmte iOS-Geräte senden, fahren Sie mit dem folgenden Tutorial fort:To learn how to push notifications to specific iOS devices, advance to the following tutorial: