Перейти к содержанию

Настройка значков для React Native

Поскольку плагин React Native не содержит заголовочный файл PWNotificationExtensionManager, вам необходимо выполнить несколько дополнительных шагов для реализации значков в вашем проекте на React Native.

1. Добавьте Notification Service Extension (File -> New -> Target…)

Anchor link to

2. Выберите “Notification Service Extension”

Anchor link to

3. Обновите код Notification Service Extension следующим образом:

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 {
// Вызывается непосредственно перед тем, как расширение будет завершено системой.
// Используйте это как возможность доставить ваш "наилучший" измененный контент, в противном случае будет использована исходная полезная нагрузка push-уведомления.
self.contentHandler(self.bestAttemptContent);
}
@end

4. Свяжите зависимости с целевым объектом (target)

Anchor link to

React Native не связывает автоматически все необходимые зависимости с целевым объектом (target), созданным вручную, поэтому вам следует обновить Build Phases целевого объекта и предоставить необходимую информацию:

Просто нажмите на знак + в разделах Compile Sources и Link Binary With Libraries и найдите необходимые библиотеки/фреймворки.

5. Добавьте capability App Groups к обоим целевым объектам (targets) в Xcode и установите одну и ту же группу и для приложения, и для расширения:

Anchor link to

6. Добавьте ключ PW_APP_GROUPS_NAME в файлы info.plist обоих целевых объектов (targets). Значением будет имя вашей группы приложений:

Anchor link to