Pular para o conteúdo

Configurando badges para React Native

Como o plugin React Native não contém o cabeçalho PWNotificationExtensionManager, você precisa executar várias etapas adicionais para implementar Badges para o seu projeto React Native.

1. Adicione a Notification Service Extension (File -> New -> Target…)

Anchor link to

2. Selecione a “Notification Service Extension”

Anchor link to

3. Atualize o código da Notification Service Extension da seguinte forma:

Anchor link to
#import "NotificationService.h"
#import <Pushwoosh/PWNotificationExtensionManager.h>
@interface NotificationService ()
@property (nonatomic, strong) void (^contentHandler)(UNNotificationContent *contentToDeliver);
@property (nonatomic, strong) UNMutableNotificationContent *bestAttemptContent;
@end
@implementation NotificationService
- (void)didReceiveNotificationRequest:(UNNotificationRequest *)request withContentHandler:(void (^)(UNNotificationContent * _Nonnull))contentHandler {
self.contentHandler = contentHandler;
self.bestAttemptContent = [request.content mutableCopy];
[[PWNotificationExtensionManager sharedManager] handleNotificationRequest:request contentHandler:contentHandler];
}
- (void)serviceExtensionTimeWillExpire {
// Called just before the extension will be terminated by the system.
// Use this as an opportunity to deliver your "best attempt" at modified content, otherwise the original push payload will be used.
self.contentHandler(self.bestAttemptContent);
}
@end

4. Vincule as dependências a um target

Anchor link to

O React Native não vincula automaticamente todas as dependências necessárias a um target que foi criado manualmente, então você deve atualizar as Build Phases do target e fornecer as informações necessárias:

Basta clicar no sinal + em Compile Sources e Link Binary With Libraries e procurar pelas bibliotecas/frameworks necessários.

5. Adicione a capacidade (capability) App Groups a ambos os targets no Xcode e defina o mesmo grupo tanto para o aplicativo quanto para a extensão:

Anchor link to

6. Adicione a chave PW_APP_GROUPS_NAME aos info.plists de ambos os targets. O valor é o nome do seu grupo de aplicativos (app group):

Anchor link to