Ativar notificações push no seu aplicativo de bate-papo
Este tutorial irá guiá-lo para habilitar a Notificação por Push em seu Aplicativo IOS usando o SDK do Chat de Comunicação do Azure.
As notificações por push alertam os clientes sobre mensagens recebidas em um thread de bate-papo em situações em que o aplicativo móvel não está sendo executado em primeiro plano. Os Serviços de Comunicação do Azure dão suporte a duas versões de notificações por push.
Basic Version
: O usuário poderá ver um número de selo de 1 no ícone do aplicativo, receber um som de notificação e ver um banner de alerta pop-up.Advanced Version
: Exceto para os recursos suportados na versão básica, a Contoso poderá personalizar a seção de visualização de título e mensagem no banner de alerta.[Versão Básica]
[Versão Avançada]
Transferir código
Acesse o código de exemplo para este tutorial no GitHub.
Pré-requisitos
Conclua todas as etapas de pré-requisito no Guia de início rápido do bate-papo
Configuração de ANH
Crie um Hub de Notificação do Azure na mesma assinatura que seu recurso de Serviços de Comunicação e vincule o Hub de Notificação ao seu recurso de Serviços de Comunicação. Consulte Provisionamento do Hub de Notificação.Configuração de certificado APNS
Aqui recomendamos criar um certificado APNS .p12 e defini-lo no Hub de Notificação.If you are not a Microsoft internal client
, siga os passos 1 a 9.
If you are a Microsoft internal client
, envie um ticket aqui e forneça o ID do pacote do seu aplicativo para obter um certificado .p12. Depois de obter um certificado válido emitido, execute a etapa 9.
Passo 1: Inicie sessão no Apple Developer Portal. Navegue até o
Certificates, IDs & Profiles > Identifiers > App IDs
ID do aplicativo associado ao seu aplicativo e clique nele.Passo 2: Na tela do seu ID do aplicativo, marque
Capabilities > Push Notifications
. Clique em Salvar e responda "Confirmar" à caixa de diálogo Modificar recursos do aplicativo exibida.Passo 3: Na mesma página, clique em
Capabilities > Push Notifications > Configure
. Clique num dos seguintes botões:- Desenvolvimento SSL Certificate Create Certificate > (para testar notificações push durante o desenvolvimento de um aplicativo iOS)
- Certificado > SSL de Produção Criar Certificado (para envio de notificações push em produção)
Passo 4: Em seguida, você é navegado para a página abaixo. Aqui, você carregará uma Solicitação de Assinatura de Certificado (CSR). Siga o próximo passo para criar uma RSE.
Passo 5: Em uma nova guia do navegador, siga esta página de ajuda para criar um CSR e salvar o arquivo como "Nome do aplicativo.cer".
Passo 6: Arraste o arquivo .cer para a área "Escolher arquivo". Em seguida, clique em "continuar" no canto superior direito.
Passo 7: Clique em "Download" e salve o arquivo no disco local.
Passo 8: Abra o arquivo de .cer que você baixou; ele abrirá o Acesso às Chaves. Selecione seu certificado, clique com o botão direito do mouse e exporte seu certificado no formato .p12.
Passo 9: Vá para o seu hub de notificação, clique em "Apple (APNS)" em Configurações e selecione "Certificado" em Modo de autenticação. Selecione também o Modo de Aplicação com base na sua necessidade. Em seguida, carregue o arquivo .p12 que você acabou de criar.
- Configuração do XCode
No XCode, vá para
Signing & Capabilities
. Adicione um recurso selecionando "+ Capacidade" e, em seguida, selecione "Notificações push".Adicione outro recurso selecionando "+ Capacidade" e, em seguida, selecione "Modos de plano de fundo". Selecione também "Notificações remotas" em Modos de plano de fundo.
- Defina "Require Only App-Extension-Safe API" como "Não" para o destino do pod - AzureCore
Implementação
1 - Versão Básica
Se você quiser implementar uma versão básica do Push Notification, você precisa se registrar para notificações remotas com APNS (Apple Push Notification Service). Consulte o código de exemplo para ver a implementação relacionada em AppDelegate.swift
.
2 - Versão Avançada
Se você quiser implementar uma versão avançada da Notificação por push, precisará incluir os seguintes itens em seu aplicativo. A razão é que criptografamos o conteúdo do cliente (por exemplo, conteúdo da mensagem de bate-papo, nome de exibição do remetente, etc.) na carga de notificação por push e isso requer alguma solução alternativa do seu lado.
- Item 1: Armazenamento de dados para chaves de criptografia
Primeiro, você deve criar um armazenamento de dados persistente no dispositivo IOS. Esse armazenamento de dados deve ser capaz de compartilhar dados entre o Aplicativo Principal e as Extensões de Aplicativo (Consulte o Item 2 para obter mais informações sobre Extensão de Aplicativo – Extensão de Serviço de Notificação).
Em nosso código de exemplo, escolheremos "Grupo de aplicativos" como o armazenamento de dados. Abaixo estão as etapas sugeridas para criar e usar o "Grupo de Aplicativos":
Siga as etapas em Adicionar um recurso para adicionar o recurso Grupos de Aplicativos aos destinos do seu aplicativo – Aplicativo Principal e Extensão de Serviço de Notificação (Consulte o Item 2 sobre como criar uma Extensão de Serviço de Notificação).
Siga também os passos neste documento oficial da Apple para configurar o App Group. Certifique-se de que a Aplicação Principal e a Extensão da Aplicação têm o mesmo nome de contentor.
- Item 2: Extensão do Serviço de Notificação
Em segundo lugar, você deve implementar uma "Extensão de Serviço de Notificação" empacotada com o aplicativo principal. Isso é usado para descriptografar a carga de notificação por push ao recebê-la.
Vá para este documento oficial da Apple. Siga a etapa "Adicionar uma extensão de aplicativo de serviço ao seu projeto" e "Implementar os métodos de manipulador da sua extensão".
Observe que na etapa "Implementar os métodos do manipulador da sua extensão", a Apple fornece o código de exemplo para descriptografar dados e seguiremos a estrutura geral. No entanto, como usamos o SDK de chat para descriptografia, precisamos substituir a parte a partir de “// Try to decode the encrypted message data.”
nossa lógica personalizada. Consulte o código de exemplo para ver a implementação relacionada em NotificationService.swift
.
- Item 3: Implementação do protocolo PushNotificationKeyStorage
Terceiro, PushNotificationKeyStorage
é necessário para a versão avançada. Como usuário do SDK, você pode usar a classe padrão AppGroupPushNotificationKeyStorage
fornecida pelo SDK do chat. Se você não usar App Group
como o armazenamento de chaves ou quiser personalizar os métodos de armazenamento de chaves, crie sua própria classe que esteja em conformidade com o protocolo PushNotificationKeyStorage.
Para PushNotificationKeyStorage, ele define dois métodos: onPersistKey(encryptionKey:expiryTime)
e onRetrieveKeys() -> [String]
.
O primeiro método é usado para persistir a chave de criptografia no armazenamento do dispositivo IOS do usuário. O SDK do chat definirá 45 minutos como o tempo de expiração da chave de criptografia. Se você quiser que a Notificação por Push entre em vigor por mais de 45 minutos, você precisa agendar uma chamada chatClient.startPushNotifications(deviceToken:)
com frequência comparativa (por exemplo, a cada 15 minutos) para que uma nova chave de criptografia possa ser registrada antes que a chave antiga expire.
O segundo método é usado para recuperar as chaves válidas armazenadas anteriormente. Você tem a flexibilidade de fornecer a personalização com base no armazenamento de dados (item 1) escolhido.
Na extensão de protocolo, o SDK de chat fornece a implementação do decryptPayload(notification:) -> PushNotificationEvent
método que você pode aproveitar. Consulte o código de exemplo para ver a implementação relacionada em NotificationService.swift
.
Testar
Crie um tópico de bate-papo com o usuário A e o usuário B.
Baixe o repositório de aplicativo de exemplo e siga as etapas acima na seção de pré-requisitos e implementação.
Coloque o ACESS_TOEKN e ACS_RESOURCE_ENDPOINT do <usuário A no
AppSettings.plist
.><>Defina "Ativar Bitcode" como "Não" para dois destinos Pods – AzureCommunicationChat e Trouter.
Conecte o dispositivo IOS ao seu mac, execute o programa e clique em "permitir" quando solicitado a autorizar a notificação por push no dispositivo.
Como Usuário B, envie uma mensagem de bate-papo. Você (Usuário A) deve ser capaz de receber uma notificação por push em seu dispositivo IOS.