Recibir notificaciones de inserción usando SNS (Xamarin iOS) - SDK para móviles de AWS

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

Recibir notificaciones de inserción usando SNS (Xamarin iOS)

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

Requisitos previos

Debe seguir las instrucciones en Setting Up the AWS Mobile SDK for .NET and Xamarin antes de comenzar este tutorial.

Establecer permisos de SNS

Siga el paso 2 de Setting Up the AWS Mobile SDK for .NET and Xamarin 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 y seleccione el rol de IAM que desea configurar.

  2. Haga clic en Attach Policy (Adjuntar política), seleccione la política AmazonSNSFullAccess y haga clic en Attach Policy (Adjuntar política).

aviso

No es recomendable usar AmazonSNSFullAccess 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.

Obtención de una suscripción a Apple iOS Developer Program

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

Creación de un certificado de iOS

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 y haga clic en Certificates, Identifiers & Profiles.

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

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

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

  5. Haga clic en Continue (Continuar).

  6. Haga clic en Submit.

  7. Haga clic en Done (Hecho).

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

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

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

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

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

  13. Seleccione iOS App Development y haga clic en Continue.

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

  15. Seleccione su certificado de desarrollador y haga clic en Continue.

  16. Seleccione su dispositivo y haga clic en Continue.

  17. Escriba un nombre de perfil y haga clic en Generate.

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

Uso del certificado para crear un ARN de plataforma en la consola de SNS

  1. Ejecute la aplicación de acceso KeyChain, seleccione My Certificates en la parte inferior izquierda de la pantalla y, a continuación, haga clic con el botón derecho del ratón en el certificado SSL que ha generado para conectarse a APNS y seleccione Export. 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.

  2. Vaya a la consola de SNS y haga clic en Applications (Aplicaciones) en la parte izquierda de la pantalla.

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

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

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

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

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

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

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

Añadir NuGet Package para SNS al proyecto

Siga el paso 4 de las instrucciones de Setting Up the AWS Mobile SDK for .NET and Xamarin para añadir el paquete de NuGet Amazon Simple Notification Service a su proyecto.

Creación de un cliente de SNS

var snsClient = new AmazonSimpleNotificationServiceClient(credentials, region);

Registro de una aplicación para recibir notificaciones remotas

Para registrar una aplicación, llame a RegisterForRemoteNotifications en el objeto UIApplication, como se muestra a continuación. Incluya el siguiente código en AppDelegate.cs insertando el ARN de la aplicación de plataforma donde se le indique:

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

  1. Vaya a la consola de SNS y haga clic en Applications (Aplicaciones).

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

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