

El SDK AWS móvil para Xamarin ahora está incluido en. AWS SDK para .NET Esta guía hace referencia a la versión archivada del SDK para móviles para Xamarin.

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Recibir notificaciones de inserción usando SNS (Xamarin iOS)
<a name="getting-started-sns-ios"></a>

En este documento se explica cómo enviar notificaciones de inserción a una aplicación de Xamarin para iOS con Amazon Simple Notification Service (SNS) y AWS Mobile SDK para .NET y Xamarin.

## Configuración del proyecto
<a name="project-setup"></a>

### Requisitos previos
<a name="prerequisites"></a>

Debe seguir las instrucciones en [Setting Up the AWS Mobile SDK for .NET and Xamarin](setup.md) antes de comenzar este tutorial.

### Establecer permisos de SNS
<a name="set-permissions-for-sns"></a>

Siga el paso 2 de [Setting Up the AWS Mobile SDK for .NET and Xamarin](setup.md) para adjuntar la política que se menciona a continuación a los roles de su aplicación. Esto otorgará a su aplicación los permisos correctos para obtener acceso a SNS:

1. Vaya a la [consola de IAM](https://console.aws.amazon.com/iam/home) y seleccione el rol de IAM que desea configurar.

1. Haz clic en **Adjuntar política**, selecciona la política de Amazon SNSFull Access y haz clic en **Adjuntar política**.

**aviso**  
No se recomienda utilizar Amazon SNSFull Access en un entorno de producción. Aquí lo utilizamos para que pueda comenzar a trabajar rápidamente. Para obtener más información acerca de la especificación de los permisos de un rol de IAM, consulte la [información general sobre los permisos de los roles de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies_permissions.html).

### Obtención de una suscripción a Apple iOS Developer Program
<a name="obtain-membership-in-the-apple-ios-developer-program"></a>

Tendrá que ejecutar su aplicación en un dispositivo físico para recibir notificaciones de inserción. Para ejecutar la aplicación en un dispositivo, debe estar suscrito a [Apple iOS Developer Program](https://developer.apple.com/programs/ios/). Una vez que se haya suscrito, podrá utilizar Xcode para generar una identidad de firma. Para obtener más información, consulte la documentación [App Distribution Quick Start](https://developer.apple.com/library/mac/documentation/IDEs/Conceptual/AppStoreDistributionTutorial/Introduction/Introduction.html#//apple_ref/doc/uid/TP40013839) de Apple.

### Creación de un certificado de iOS
<a name="create-an-ios-certificate"></a>

En primer lugar, debe crear un certificado de iOS. A continuación, debe crear un perfil de aprovisionamiento configurado para las notificaciones de inserción. Para ello:

1. Vaya a [Apple Developer Member Center](https://developer.apple.com/membercenter/index.action) y haga clic en **Certificates, Identifiers & Profiles**.

1. Haga clic en **Identifiers (Identificadores)** en **iOS Apps (Aplicaciones iOS)**, haga clic en el botón más situado en la esquina superior derecha de la página web para añadir un nuevo ID de aplicación de iOS y escriba una descripción de ID de aplicación.

1. Desplácese hasta la sección **Add ID Suffix (Agregar sufijo de ID)**, seleccione **Explicit App ID (ID de aplicación explícito)** y escriba el identificador de su paquete.

1. Desplácese hacia abajo hasta la sección **App Services (Servicios de aplicación)** y seleccione **Push Notifications (Notificaciones de inserción)**.

1. Haga clic en **Continue (Continuar)**.

1. Haga clic en **Submit**.

1. Haga clic en **Done (Hecho)**.

1. Seleccione el ID de aplicación que acaba de crear y, a continuación, haga clic en **Edit**.

1. Desplácese hasta la sección **Push Notifications (Notificaciones de inserción)**. Haga clic en **Create Certificate** en **Development SSL Certificate**.

1. Siga las instrucciones para crear una solicitud de firma del certificado (CSR), cargar la solicitud y descargar un certificado SSL que se utilizará para la comunicación con Apple Push Notification Service (APNS).

1. Vuelva a la página **Certificates, Identifiers & Profiles**. Haga clic en **All** en **Provisioning Profiles**.

1. Haga clic en el botón más situado en la esquina superior derecha para añadir un nuevo perfil de aprovisionamiento.

1. Seleccione **iOS App Development** y haga clic en **Continue**.

1. Seleccione su ID de aplicación y haga clic en **Continue**.

1. Seleccione su certificado de desarrollador y haga clic en **Continue**.

1. Seleccione su dispositivo y haga clic en **Continue**.

1. Escriba un nombre de perfil y haga clic en **Generate**.

1. Para instalar el perfil de aprovisionamiento, descargue el archivo de aprovisionamiento y haga doble clic en él.

Para obtener más información sobre el aprovisionamiento de un perfil configurado para notificaciones de inserción, consulte la documentación de Apple [Configuring Push Notifications](https://developer.apple.com/library/mac/documentation/IDEs/Conceptual/AppDistributionGuide/ConfiguringPushNotifications/ConfiguringPushNotifications.html#//apple_ref/doc/uid/TP40012582-CH32-SW1).

### Uso del certificado para crear un ARN de plataforma en la consola de SNS
<a name="use-certificate-to-create-platform-arn-in-sns-console"></a>

1. **Ejecuta la aplicación de KeyChain acceso, selecciona **Mis certificados** en la parte inferior izquierda de la pantalla y, a continuación, haz clic con el botón derecho en el certificado SSL que generaste para conectarte a APNS y selecciona Exportar.** Se le pedirá que especifique un nombre para el archivo y una contraseña para proteger el certificado. El certificado se guardará en un archivo P12.

1. Vaya a la [consola de SNS](https://console.aws.amazon.com/sns/v2/home) y haga clic en **Applications (Aplicaciones)** en la parte izquierda de la pantalla.

1. Haga clic en **Create platform application (Crear aplicación de plataforma)** para crear una nueva aplicación de plataforma de SNS.

1. Introduzca un nombre de aplicación en **Application Name (Nombre de aplicación)**.

1. Seleccione **Apple Development (Desarrollo Apple)** en **Push notification platform (Pataforma de notificación de inserción)**.

1. Haga clic en **Choose File (Elegir archivo)** y seleccione el archivo P12 que creó al exportar el certificado SSL.

1. Escriba la contraseña que especificó cuando exportó el certificado SSL y haga clic en **Load Credentials From File (Cargar credenciales desde archivo)**.

1. Haga clic en **Create platform application (Crear aplicación de plataforma)**.

1. Seleccione la aplicación de plataforma que acaba de crear y copie el ARN de la aplicación. Lo necesitará en los próximos pasos.

### Agregue NuGet Package for SNS a su proyecto
<a name="add-nuget-package-for-sns-to-your-project"></a>

Siga el paso 4 de las instrucciones de [Configuración del AWS Mobile SDK para.NET and Xamarin para](setup.md) añadir el paquete Amazon Simple Notification NuGet Service a su proyecto.

## Creación de un cliente de SNS
<a name="create-an-sns-client"></a>

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

## Registro de una aplicación para recibir notificaciones remotas
<a name="register-your-application-for-remote-notifications"></a>

Para registrar una aplicación, llame a RegisterForRemoteNotifications su UIApplication objeto, tal y como se muestra a continuación. Coloque el siguiente código en AppDelegate .cs e inserte el ARN de la aplicación de plataforma donde se indica a continuación:

```
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 */
    });
  }
}
```

## Envío de un mensaje desde la consola de SNS a un punto de enlace
<a name="send-a-message-from-the-sns-console-to-your-endpoint"></a>

1. Vaya a la [consola de SNS y haga clic en Applications (Aplicaciones)](https://console.aws.amazon.com/sns/v2/home).

1. Seleccione su aplicación de plataforma, seleccione un punto de enlace y haga clic en **Publish to endpoint (Publicar en punto de enlace)**.

1. Escriba un mensaje en el cuadro de texto y haga clic en **Publish message (Publicar mensaje)** para publicarlo.