Para o funcionamento do push é necessário que seu windows seja 10/server 2016 superior. Isso devido ao fato de usar http/2 conforme documentação da microsoft https://docs.microsoft.com/en-us/iis/get-started/whats-new-in-iis-10/http2-on-iis
Se for usar o azure deve-se adicionar a configuração WEBSITE_LOAD_USER_PROFILE = 1. Essa configuração não é possivel no plano gratuito (compartilhado).
Abaixo irei explicar como configurar o envio de push para IOS, explicando as etapas desde a loja até a chamada da API de envio.
O primeiro passo para enviar push é gerar uma KEY na loja da apple
Ao clicar em adicionar a key, preencha o nome da key, escolha a opção de push e clique em continuar. E na próxima tela clique em registrar.
Após a geração da key irá para essa tela, onde você terá a KEY ID e o botão download habilitado.
Observação: A Apple só permite fazer o download do certificado P8 uma única vez, então baixe e guarde em um lugar seguro. Se perder o certificado terá que gerar outro e reconfigurar.
Para os próximos passos vou levar em consideração que já conheço a Apple Developer, sendo assim você já sabe o que é um Identifiers (ou package) e TEAMID.
Levarei em consideração também que o aplicativo já esteja pronto e gerando o TOKEN do APP.
Essa api foi feita em net core para possibilitar o envio de push para apple, já que se faz necessário usar o padrão HTTP2. Para testar o envio de push é muito simples. Abra o postman e faça os seguintes passos:
-
Acesse o endpoint /api/PushIOS/enviar
-
Informe o Token no Header (de acordo como fez em sua api)
-
Informe no body o seguinte JSON
-
TeamId - O id do seu time na apple developer
-
AppPackage - O identifier (ou package) do seu aplicativo
-
POitoKeyId - A key ID do sua key que gerou na etapa da loja
-
DeviceToken - O token que o IPHONE gera ao iniciar o aplicativo
-
ChaveArquivoPOito - O base64 do arquivo P8 que foi gerado
-
PayloadPush - Os dados que deseja enviar via push, deve ser um json
Veja abaixo as imagens:
Os valores foram ocultados pois é de um cliente real. Caso o push seja enviado com sucesso irá receber no dispositivo e a API retornará true.
Observação: Para pegar o base64 do certificado p8 é bem simples, basta editar no notepad. pegue a informação que está entre begin/end private key. Coloque tudo em uma mesma linha e use ele.