

O SDK AWS móvel para Xamarin agora está incluído no. AWS SDK para .NET Este guia faz referência à versão arquivada do Mobile SDK para Xamarin.

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Receber notificações por push usando o SNS (Xamarin iOS)
<a name="getting-started-sns-ios"></a>

Este documento explica como enviar notificações por push a um aplicativo Xamarin iOS usando o Amazon Simple Notification Service (SNS) e o AWS Mobile SDK para .NET e Xamarin.

## Configuração do projeto
<a name="project-setup"></a>

### Pré-requisitos
<a name="prerequisites"></a>

É necessário concluir todas as instruções na [Configuração do AWS Mobile SDK para .NET e Xamarin](setup.md) antes de iniciar este tutorial.

### Definir permissões para o SNS
<a name="set-permissions-for-sns"></a>

Siga a etapa 2 em [Configuração do AWS Mobile SDK para .NET e Xamarin](setup.md) para associar a política mencionada abaixo aos perfis do aplicativo. Isso concederá aplicativo as permissões adequadas para acessar o SNS:

1. Acesse o [console do IAM](https://console.aws.amazon.com/iam/home) e selecione a função do IAM a ser configurada.

1. Clique em **Anexar política**, selecione a política Amazon SNSFull Access e clique em **Anexar política**.

**Atenção**  
O uso do Amazon SNSFull Access não é recomendado em um ambiente de produção. Nós o utilizamos aqui para que você possa avançar rapidamente. Para obter mais informações sobre como especificar permissões para uma perfil do IAM, consulte [Visão geral das permissões de perfis do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies_permissions.html).

### Obtenção da associação ao Apple iOS Developer Program
<a name="obtain-membership-in-the-apple-ios-developer-program"></a>

Você precisará executar o aplicativo em um dispositivo físico para receber notificações por push. Para executar o aplicativo em um dispositivo, é preciso ter uma associação ao [Apple iOS Developer Program](https://developer.apple.com/programs/ios/). Quando você tiver uma associação, poderá usar o Xcode para gerar uma identidade de assinatura. Para obter mais informações, consulte a documentação [App Distribution Quick Start](https://developer.apple.com/library/mac/documentation/IDEs/Conceptual/AppStoreDistributionTutorial/Introduction/Introduction.html#//apple_ref/doc/uid/TP40013839) da Apple.

### Criação de um certificado iOS
<a name="create-an-ios-certificate"></a>

Primeiro, você precisa criar um certificado iOS. Em seguida, você precisará criar um perfil de provisionamento configurado para notificações por push. Para fazer isso:

1. Acesse o [Apple Developer Member Center](https://developer.apple.com/membercenter/index.action) e clique em **Certificates, Identifiers & Profiles (Certificados, identificadores e perfis)**.

1. Clique em **Identifiers (Identificadores)**, em **iOS Apps (Aplicativos iOS)**, clique no sinal de adição no canto superior direito da página da web para adicionar um novo ID do aplicativo iOS e insira uma descrição para o ID do aplicativo.

1. Role a tela para baixo até a seção **Add ID Suffix (Adicionar sufixo ao ID)** e selecione **Explicit App ID (ID explícito do aplicativo)** e insira o identificador do pacote.

1. Role para baixo até a seção **App Services (Serviços do aplicativo)** e, em seguida, selecione **Push Notifications (Notificações por push)**.

1. Clique em **Continue**.

1. Clique em **Enviar**.

1. Clique em **Done (Concluído)**.

1. Selecione o ID do aplicativo que você acabou de criar e clique em **Edit (Editar)**.

1. Role para baixo até a seção **Push Notifications (Notificações por push)**. Clique em **Create Certificate (Criar certificado)**, em **Development SSL Certificate (Certificado SSL para desenvolvimento)**.

1. Siga as instruções para criar a Certificate Signing Request (CSR - Solicitação de assinatura de certificado), fazer o upload da solicitação e fazer o download de um certificado SSL que será usado para se comunicar com o Apple Notification Service (APNS).

1. Retorne à página **Certificates, Identifiers & Profiles (Certificados, identificadores e perfis)**. Clique em **All (Tudo)**, em **Provisioning Profiles (Perfis de provisionamento)**.

1. Clique no botão de adição no canto superior direito para adicionar um novo perfil de provisionamento.

1. Selecione **iOS App Development (Desenvolvimento de aplicativo iOS)** e clique em **Continue (Continuar)**.

1. Selecione o ID do aplicativo e clique em **Continue (Continuar)**.

1. Selecione o certificado do desenvolvedor e clique em **Continue (Continuar)**.

1. Selecione o dispositivo e clique em **Continue (Continuar)**.

1. Insira um nome de perfil e clique em **Generate (Gerar)**.

1. Faça o download e clique duas vezes no arquivo de provisão para instalar o perfil de provisionamento.

Para obter mais informações sobre o provisionamento de um perfil configurado para receber notificações por push, consulte a documentação [Configuração de notificações por push](https://developer.apple.com/library/mac/documentation/IDEs/Conceptual/AppDistributionGuide/ConfiguringPushNotifications/ConfiguringPushNotifications.html#//apple_ref/doc/uid/TP40012582-CH32-SW1) da Apple.

### Uso do certificado para criar um Nome de região da Amazon (ARN) de plataforma no console do SNS
<a name="use-certificate-to-create-platform-arn-in-sns-console"></a>

1. **Execute o aplicativo de KeyChain acesso, selecione **Meus certificados** no canto inferior esquerdo da tela e clique com o botão direito do mouse no certificado SSL que você gerou para se conectar ao APNS e selecione Exportar.** Você será solicitado a especificar um nome para o arquivo e uma senha para proteger o certificado. O certificado será salvo em um arquivo P12.

1. Acesse o [console do SNS](https://console.aws.amazon.com/sns/v2/home) e clique em **Applications (Aplicativos)** no lado esquerdo da tela.

1. Clique em **Create platform application (Criar aplicativo de plataforma)** para criar um novo aplicativo para a plataforma SNS.

1. Insira um **Application Name (Nome de aplicativo)**.

1. Selecione **Apple Development (Desenvolvimento da Apple)** em **Push notification platform (Plataforma de notificação por push)**.

1. Clique em **Choose File (Selecionar arquivo)** e selecione o arquivo P12 criado ao exportar o certificado SSL.

1. Insira a senha especificada durante a exportação do certificado SSL e clique em **Load Credentials From File (Carregar credenciais a partir do arquivo)**.

1. Clique em **Create platform application (Criar aplicativo de plataforma)**.

1. Selecione o aplicativo de plataforma que você acabou de criar e copie o Nome de região da Amazon (ARN) do aplicativo. Você precisará dele nas etapas subsequentes.

### Adicione o NuGet Package for SNS ao seu projeto
<a name="add-nuget-package-for-sns-to-your-project"></a>

Siga a Etapa 4 das instruções em [Configurar o AWS Mobile SDK para .NET e Xamarin para](setup.md) adicionar o pacote NuGet Amazon Simple Notification Service ao seu projeto.

## Criação de um cliente SNS
<a name="create-an-sns-client"></a>

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

## Registro do aplicativo para notificações remotas
<a name="register-your-application-for-remote-notifications"></a>

Para cadastrar um aplicativo, chame RegisterForRemoteNotifications seu UIApplication objeto, conforme mostrado abaixo. Coloque o código a seguir em AppDelegate .cs, inserindo o ARN do aplicativo da plataforma conforme solicitado abaixo:

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

## Envio de uma mensagem do console do SNS para o endpoint
<a name="send-a-message-from-the-sns-console-to-your-endpoint"></a>

1. Acesse [SNS Console (Console do SNS) > Applications (Aplicativos)](https://console.aws.amazon.com/sns/v2/home).

1. Selecione o aplicativo de plataforma, selecione um endpoint e clique em **Publish to endpoint (Publicar no endpoint)**.

1. Digite uma mensagem de texto na caixa de texto e clique em **Publish message (Publicar mensagem)** para publicar uma mensagem.