Envie cargas personalizadas específicas à plataforma para dispositivos móveis. - Amazon Simple Notification Service

Se fornecermos uma tradução da versão em inglês do guia, a versão em inglês prevalecerá caso haja qualquer conflito entre as versões. A tradução é fornecida com o uso de tradução por máquina.

Envie cargas personalizadas específicas à plataforma para dispositivos móveis.

É possível usar o Console de gerenciamento da AWS ou as APIs do Amazon SNS para enviar mensagens personalizadas com cargas específicas à plataforma para dispositivos móveis. Para obter informações sobre como usar as APIs do Amazon SNS, consulte Usar as APIs para push para dispositivos móveis do Amazon SNS e o arquivo SNSMobilePush.java no snsmobilepush.zip.

Enviar mensagens formatadas em JSON

Ao enviar cargas específicas à plataforma, os dados devem estar formatados como strings de par de chave/valor JSON, com aspas em sequência de escape.

Os exemplos a seguir mostram uma mensagem personalizada para a plataforma do FCM.

{ "GCM":"{ \"notification\": { \"body\": \"Sample message for Android endpoints\", \"title\":\"TitleTest\" } }" }

Enviar mensagens específicas à plataforma

Além de enviar dados personalizados como pares de chave/valor, é possível enviar pares de chave/valor específicos à plataforma.

O exemplo a seguir mostra a inclusão dos parâmetros time_to_live e collapse_key do FCM depois dos pares de chave/valor de dados personalizados no parâmetro data do FCM.

{ "GCM":"{ \"notification\": { \"body\": \"Sample message for Android endpoints\", \"title\":\"TitleTest\" }, \"data\": {\"time_to_live\": 3600,\"collapse_key\":\"deals\"}" } }

Para obter uma lista dos pares de chave/valor compatíveis em cada um dos serviços de notificação push compatíveis com o Amazon SNS, consulte o seguinte:

Enviar mensagens para um aplicativo em várias plataformas

Para enviar uma mensagem para um aplicativo instalado em dispositivos para várias plataformas, como o FCM e o APNS, você deverá primeiro inscrever os endpoints móveis em um tópico do Amazon SNS e depois publicar a mensagem no tópico.

O exemplo a seguir mostra uma mensagem a ser enviada para endpoints móveis inscritos no APNS, no FCM e no ADM:

{ "default": "This is the default message which must be present when publishing a message to a topic. The default message will only be used if a message is not present for one of the notification platforms.", "APNS": "{\"aps\":{\"alert\": \"Check out these awesome deals!\",\"url\":\"www.amazon.com\"} }", "GCM": "{\"data\":{\"message\":\"Check out these awesome deals!\",\"url\":\"www.amazon.com\"}}", "ADM": "{\"data\":{\"message\":\"Check out these awesome deals!\",\"url\":\"www.amazon.com\"}}" }

Enviar mensagens para o APNS como notificações de alerta ou de segundo plano

O Amazon SNS pode enviar mensagens para o APNS como notificações de alert ou de background (para obter mais informações, consulte Enviar atualizações em segundo plano para o aplicativo na documentação do APNS).

  • Uma notificação de alert do APNS informa o usuário exibindo uma mensagem de alerta, reproduzindo um som ou adicionando um distintivo ao ícone do aplicativo.

  • Uma notificação de background do APNS desperta ou instrui seu aplicativo a agir em relação ao conteúdo da notificação, sem informar o usuário.

Especificar valores personalizados do cabeçalho do APNS

Recomendamos especificar valores personalizados para o AWS.SNS.MOBILE.APNS.PUSH_TYPE atributo de mensagem reservada usando a ação da API Publish do Amazon SNS, os AWS SDKs ou a AWS CLI. O exemplo da CLI a seguir define content-available como 1 e apns-push-type como background para o tópico especificado.

aws sns publish \ --endpoint-url https://sns.us-east-1.amazonaws.com \ --target-arn arn:aws:sns:us-east-1:123456789012:endpoint/APNS_PLATFORM/MYAPP/1234a567-bc89-012d-3e45-6fg7h890123i \ --message '{"APNS_PLATFORM":"{\"aps\":{\"content-available\":1}}"}' \ --message-attributes '{ \ "AWS.SNS.MOBILE.APNS.TOPIC":{"DataType":"String","StringValue":"com.amazon.mobile.messaging.myapp"}, \ "AWS.SNS.MOBILE.APNS.PRIORITY":{"DataType":"String","StringValue":"10"}}', \ "AWS.SNS.MOBILE.APNS.PUSH_TYPE":{"DataType":"String","StringValue":"background"} \ --message-structure json

Inferir o cabeçalho do tipo de push do APNS da carga

Se você não definir o cabeçalho apns-push-type do APNS, o Amazon SNS definirá o cabeçalho como alert ou background dependendo da chave content-available no dicionário aps da configuração de carga do APNS formatada em JSON.

nota

O Amazon SNS é capaz de inferir somente os cabeçalhos alert ou background, embora o cabeçalho apns-push-type possa ser definido com outros valores.

  • apns-push-type está definido para alert

    • Se o dicionário aps contiver content-available definida como 1 e uma ou mais chaves que acionem interações do usuário.

    • Se o dicionário aps contiver content-available definida como 0 ou se a chave content-available estiver ausente.

    • Se o valor da chave content-available não for um inteiro ou um booliano.

  • apns-push-type está definido para background

    • Se o dicionário aps contiver somente a content-available definida como 1 e nenhuma outra chave que acione interações do usuário.

      Importante

      Se o Amazon SNS enviar um objeto de configuração bruto para o APNS como uma notificação somente de segundo plano, será necessário incluir a content-available definida como 1 no dicionário aps. Embora você possa incluir chaves personalizadas, o dicionário aps não deve conter chaves que acionem interações do usuário (por exemplo, alertas, distintivos ou sons).

Veja a seguir um exemplo de objeto de configuração bruto.

{ "APNS": "{\"aps\":{\"content-available\":1},\"Foo1\":\"\Bar\",\"Foo2\":123}" }

Neste exemplo, Amazon SNS define o apns-push-type APNS cabeçalho da mensagem para background. Quando Amazon SNS deteta que o apn dicionário contém o content-available chave definida para 1—e não contém quaisquer outras chaves que possam ativar as interações com o utilizador—define o cabeçalho para background.