Configurando de Push Notifications no iOS

Para configurar as push notifications são necessárias 5 etapas distintas:

Configuração do certificado da APN na Apple

Baixar a Auth Key (APN key) registrada em https://developer.apple.com/. Essa Chave não pode mais ser baixada diretamente do site, ela se encontra na rede em P:\Certificados iOS\APN Keys.

Obs: Existem 2 chaves nesse diretório da rede. Ambos podem ser utilizados.

Configuração dos certificados de push notification do projeto na Apple

Seguir o tutorial em: How to Create a Push Notification Certificate

Configuração do projeto no Firebase

  1. No Firebase, acessar o projeto (cadastrar um caso não exista)



  2. Abrir a aba Cloud Messaging


  3. Na seção APNs Authentication Key, faça o upload da APN Key da Apple


  4. O arquivo é a chave *.p8 baixada anteriormente.

  5. A Key ID é o código que está no nome do arquivo .p8, após o undeline e antes do .p8 conforme na imagem abaixo.

  6. O Team ID pode ser consultado na conta do developer.apple.com


  7. Após o upload, a configuração ficará conforme a figura abaixo


Configuração do projeto React-Native

No aplicativo MDK Exames fizemos da seguinte forma:

  1. Incluir os pacotes do firebase e do react-native-notifications;

    yarn add @react-native-firebase/app
    yarn add react-native-notifications
    
  2. Incluir código para que o App possa pedir a permissão do usuário para enviar push notifications

    import { Notifications } from 'react-native-notifications'
    
    if (Platform.OS === 'ios') {
      Notifications.ios.registerRemoteNotifications()
    }
    
  3. Incluir código para receber o token do dispositivo e fazer alguma coisa com isso (enviar ao servidor provavelmente)

    import { Notifications } from 'react-native-notifications'
    
    if (Platform.OS === 'ios') {
      Notifications.events().registerRemoteNotificationsRegistered((event) => {
        const token = event.deviceToken
        console.log('Device Token Received', token)
        // Enviar Token ao servidor
      })
      Notifications.events().registerRemoteNotificationsRegistrationFailed((event) => {
        console.error(event)
      })
    }
    
  4. Reinstalar os pods;

    cd ios
    pod install
    
  5. Baixar do Firebase, o arquivo GoogleService-Info.plist;

  6. Abrir o projeto .xcworkspace no XCode e:
    a) Incluir o arquivo GoogleService-Info.plist no projeto;


    b) Habilitar as push notifications nas Capabilities do projeto;


    c) No arquivo AppDelegate.m incluir o código abaixo:

    #import "Firebase.h"
    #import "RNNotifications.h"
       
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions (NSDictionary *)launchOptions
    {
          ...
    
          [FIRApp configure];
    
          [RNNotifications startMonitorNotifications];
    
          ...
    
          return YES;
    }
    

  7. Recompilar.

Teste do envio de Notificação

Existem sites que fazem o envio de notificação com fins de teste. Um dele é o https://www.apnstester.com/apns/.