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

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

Configuração do projeto no Firebase

Configuração do projeto React-Native

Teste

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

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

 

Abrir a aba Cloud Messaging

 

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

 

O arquivo é a chave *.p8 baixada anteriormente.

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.

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

 

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:

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

yarn add @react-native-firebase/app

yarn add react-native-notifications

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()

}

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)

 })

}

Reinstalar os pods;

cd ios

pod install

Baixar do Firebase, o arquivo GoogleService-Info.plist;

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;

}

 

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/.

