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
.xcworkspaceno XCode e:
a) Incluir o arquivoGoogleService-Info.plistno 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/.

No Comments