

Das AWS Mobile SDK für Xamarin ist jetzt in der enthalten. AWS SDK für .NET Dieses Handbuch bezieht sich auf die archivierte Version des Mobile SDK für Xamarin.

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Empfangen von Push-Benachrichtigungen mit SNS (Xamarin iOS)
<a name="getting-started-sns-ios"></a>

In diesem Dokument wird erklärt, wie Sie mithilfe von Amazon Simple Notification Service (SNS) und dem AWS Mobile SDK für .NET und Xamarin Push-Benachrichtigungen an eine Xamarin iOS-Anwendung senden.

## Projekteinrichtung
<a name="project-setup"></a>

### Voraussetzungen
<a name="prerequisites"></a>

Befolgen Sie alle Anweisungen unter [Einrichten von AWS Mobile SDK for .NET and Xamarin](setup.md), bevor Sie mit diesem Tutorial beginnen.

### Festlegen von Berechtigungen für SNS
<a name="set-permissions-for-sns"></a>

Befolgen Sie Schritt 2 in [Einrichten von AWS Mobile SDK for .NET and Xamarin](setup.md), um die unten angegebene Richtlinie an die Rollen der Anwendung anzuhängen. Die Anwendung erhält so die erforderlichen Berechtigungen für den Zugriff auf SNS:

1. Navigieren Sie zur [IAM-Konsole](https://console.aws.amazon.com/iam/home) und wählen Sie die zu konfigurierende IAM-Rolle.

1. Klicken Sie auf **Richtlinie anhängen**, wählen Sie die Amazon SNSFull Access-Richtlinie aus und klicken Sie auf **Richtlinie anhängen**.

**Warnung**  
Die Verwendung von Amazon SNSFull Access in einer Produktionsumgebung wird nicht empfohlen. Wir verwenden die Richtlinie hier, damit Sie schnell mit der Arbeit beginnen können. Weitere Informationen über das Festlegen von Berechtigungen für eine IAM-Rolle erhalten Sie unter [Overview of IAM Role Permissions](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies_permissions.html).

### Anfordern der Mitgliedschaft im Apple iOS Developer Program
<a name="obtain-membership-in-the-apple-ios-developer-program"></a>

Sie müssen die App auf einem physischen Gerät ausführen, um Push-Benachrichtigungen zu empfangen. Zum Ausführen der App auf einem Gerät benötigen Sie eine [Mitgliedschaft im Apple iOS Developer Program](https://developer.apple.com/programs/ios/). Sobald Sie eine Mitgliedschaft besitzen, können Sie mit Xcode eine Signaturidentität generieren. Weitere Informationen enthält die Dokumentation [App Distribution Quick Start](https://developer.apple.com/library/mac/documentation/IDEs/Conceptual/AppStoreDistributionTutorial/Introduction/Introduction.html#//apple_ref/doc/uid/TP40013839) von Apple.

### Erstellen eines iOS-Zertifikats
<a name="create-an-ios-certificate"></a>

Zunächst müssen Sie ein iOS-Zertifikat erstellen. Anschließend müssen Sie ein Bereitstellungsprofil erstellen, das für Push-Benachrichtigungen konfiguriert ist. Gehen Sie hierzu wie folgt vor:

1. Navigieren Sie zum [Apple Developer Member Center](https://developer.apple.com/membercenter/index.action) und klicken Sie auf **Certificates, Identifiers & Profiles (Zertifikate, IDs und Profile)**.

1. Klicken Sie unter **iOS Apps** auf **Identifiers**, klicken Sie oben rechts auf der Web-Seite auf die Plus-Schaltfläche, um eine neue iOS-App-ID hinzuzufügen, und geben Sie eine Beschreibung für die App-ID ein.

1. Scrollen Sie nach unten zum Bereich **Add ID Suffix**, wählen Sie **Explicit App ID** und geben Sie die Bundle-ID ein.

1. Scrollen Sie nach unten zum Bereich **App Services** und wählen Sie **Push Notifications**.

1. Klicken Sie auf **Weiter**.

1. Klicken Sie auf **Submit**.

1. Klicken Sie auf **Done (Fertig)**.

1. Wählen Sie die gerade erstellte App-ID aus und klicken Sie dann auf **Edit (Bearbeiten)**.

1. Scrollen Sie nach unten zum Bereich **Push Notifications**. Klicken Sie auf **Create Certificate (Zertifkat erstellen)** unter **Development SSL Certificate (Entwicklung-SSL-Zertifikat)**.

1. Befolgen Sie die Anweisungen zum Erstellen einer CSR-Anforderung (Certificate Signing Request), laden Sie die Anforderung hoch und laden Sie ein SSL-Zertifikat herunter, das für die Kommunikation mit Apple Notification Service (APNS) verwendet wird.

1. Kehren Sie zur Seite **Certificates, Identifiers & Profiles (Zertifikate, IDs und Profile)** zurück. Klicken Sie auf **All** unter **Provisioning Profiles**.

1. Klicken Sie auf die Plus-Schaltfläche oben rechts, um ein neues Bereitstellungsprofil hinzuzufügen.

1. Wählen Sie **iOS App Development (Entwicklung von iOS-Anwendungen)** und klicken Sie dann auf **Continue (Weiter)**.

1. Wählen Sie die App-ID und klicken Sie dann auf **Continue (Weiter)**.

1. Wählen Sie Ihr Entwicklerzertifikat und klicken Sie dann auf **Continue (Weiter)**.

1. Wählen Sie das Gerät und klicken Sie dann auf **Continue (Weiter)**.

1. Geben Sie einen Profilnamen ein und klicken Sie dann auf **Generate (Erstellen)**.

1. Laden Sie die Bereitstellungsdatei herunter und doppelklicken Sie dann auf die Datei, um das Bereitstellungsprofil zu installieren.

Weitere Informationen zur Bereitstellung eines Profils, das für Push-Benachrichtigungen konfiguriert ist, finden Sie in der Apple-Dokumentation [Configuring Push Notifications](https://developer.apple.com/library/mac/documentation/IDEs/Conceptual/AppDistributionGuide/ConfiguringPushNotifications/ConfiguringPushNotifications.html#//apple_ref/doc/uid/TP40012582-CH32-SW1).

### Verwenden eines Zertifikats zum Erstellen eines Plattform-ARN in der SNS-Konsole
<a name="use-certificate-to-create-platform-arn-in-sns-console"></a>

1. **Führen Sie die KeyChain Access-App aus, wählen Sie unten links auf dem Bildschirm **Meine Zertifikate** aus, klicken Sie dann mit der rechten Maustaste auf das SSL-Zertifikat, das Sie für die Verbindung mit APNS generiert haben, und wählen Sie Exportieren aus.** Sie werden aufgefordert, einen Namen für die Datei und ein Passwort zum Schutz des Zertifikats anzugeben. Das Zertifikat wird in einer P12-Datei gespeichert.

1. Rufen Sie die [SNS-Konsole](https://console.aws.amazon.com/sns/v2/home) auf und klicken Sie auf der linken Seite des Bildschirms auf **Applications (Anwendungen)**.

1. Klicken Sie auf **Create platform application**, um eine Anwendung für die SNS-Plattform zu erstellen.

1. Geben Sie einen **Application Name** ein.

1. Wählen Sie **Apple Development** für **Push notification platform (Push-Benachrichtigungsplattform)**.

1. Klicken Sie auf **Choose File** und wählen Sie die P12-Datei, die Sie beim Exportieren des SSL-Zertifikats erstellt haben.

1. Geben Sie das beim Exportieren des SSL-Zertifikats eingegebene Passwort ein und klicken Sie auf **Load Credentials From File**.

1. Klicken Sie auf **Create platform application**.

1. Wählen Sie die soeben erstellte Plattformanwendung und kopieren Sie den ARN der Anwendung. Sie werden den Namen in kommenden Schritten benötigen.

### NuGet Package für SNS zu Ihrem Projekt hinzufügen
<a name="add-nuget-package-for-sns-to-your-project"></a>

Folgen Sie Schritt 4 der Anweisungen unter [Einrichten des AWS Mobile SDK for .NET and Xamarin](setup.md), um das Amazon Simple Notification NuGet Service-Paket zu Ihrem Projekt hinzuzufügen.

## Erstellen eines SNS-Clients
<a name="create-an-sns-client"></a>

```
var snsClient = new AmazonSimpleNotificationServiceClient(credentials, region);
```

## Registrieren der Anwendung für Remote-Benachrichtigungen
<a name="register-your-application-for-remote-notifications"></a>

Um eine Anwendung zu registrieren, rufen Sie Ihr UIApplication Objekt RegisterForRemoteNotifications auf, wie unten gezeigt. Platzieren Sie den folgenden Code in AppDelegate .cs und fügen Sie den ARN Ihrer Plattformanwendung ein, wo Sie unten dazu aufgefordert werden:

```
public override bool FinishedLaunching(UIApplication app, NSDictionary options) {
// do something
var pushSettings = UIUserNotificationSettings.GetSettingsForTypes (
  UIUserNotificationType.Alert |
  UIUserNotificationType.Badge |
  UIUserNotificationType.Sound,
  null
);
app.RegisterUserNotifications(pushSettings);
app.RegisterForRemoteNotifications();
// do something
  return true;
}

public override void RegisteredForRemoteNotifications(UIApplication application, NSData token) {
  var deviceToken = token.Description.Replace("<", "").Replace(">", "").Replace(" ", "");
  if (!string.IsNullOrEmpty(deviceToken)) {
    //register with SNS to create an endpoint ARN
    var response = await SnsClient.CreatePlatformEndpointAsync(
    new CreatePlatformEndpointRequest {
      Token = deviceToken,
      PlatformApplicationArn = "YourPlatformArn" /* insert your platform application ARN here */
    });
  }
}
```

## Senden einer Nachricht mit der SNS-Konsole an den Endpunkt
<a name="send-a-message-from-the-sns-console-to-your-endpoint"></a>

1. Navigieren Sie zu [SNS Console (SNS-Konsole) > Applications (Anwendungen)](https://console.aws.amazon.com/sns/v2/home).

1. Wählen Sie die Plattformanwendung, dann einen Endpunkt und klicken Sie schließlich auf **Publish to endpoint (In Endpunkt veröffentlichen)**.

1. Geben Sie eine Textnachricht in das Textfeld ein und klicken Sie auf **Publish message (Nachricht veröffentlichen)**, um eine Nachricht zu veröffentlichen.