Настройка бейджей для Cordova
Поскольку плагин Cordova не содержит заголовок PWNotificationExtensionManager, для внедрения бейджей в ваш проект Cordova необходимо выполнить несколько дополнительных шагов.
Для настройки бейджей вам потребуется:
- Создать Notification Service Extension
- Добавить фреймворк Wavesend
- Добавить возможность App Groups
1. Добавьте Notification Service Extension (File -> New -> Target…)
Section titled “1. Добавьте Notification Service Extension (File -> New -> Target…)”
2. Выберите “Notification Service Extension”
Section titled “2. Выберите “Notification Service Extension””
3. Добавьте Pushwoosh.xcframework в таргет расширения NotificationService следующим образом:
Section titled “3. Добавьте Pushwoosh.xcframework в таргет расширения NotificationService следующим образом:”- Выберите таргет расширения NotificationService.
- Перейдите на вкладку «General».
- Найдите «Framework and Libraries» и нажмите кнопку «+».
- Выберите Pushwoosh.xcframework.


4. Обновите код Notification Service Extension следующим образом:
Section titled “4. Обновите код Notification Service Extension следующим образом:”#import "NotificationService.h"#import "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);}
@end5. Добавьте “App Groups Capability” для каждого таргета вашего приложения
Section titled “5. Добавьте “App Groups Capability” для каждого таргета вашего приложения”


6. Добавьте App Groups ID в ваш info.plist для каждого таргета вашего приложения
Section titled “6. Добавьте App Groups ID в ваш info.plist для каждого таргета вашего приложения”<key>PW_APP_GROUPS_NAME</key><string>group.com.example.demoapp_example</string>Поделитесь с нами своим мнением
Section titled “Поделитесь с нами своим мнением”Ваши отзывы помогают нам улучшать наш продукт, поэтому мы будем рады, если вы расскажете нам о любых проблемах, возникших в процессе интеграции SDK. Если вы столкнетесь с какими-либо трудностями, пожалуйста, не стесняйтесь поделиться своими мыслями с нами через эту форму.