Интеграция rich-уведомлений для iOS
Начиная с iOS 10, вы можете прикреплять к push-уведомлениям статичное или анимированное изображение или даже видео. Оно будет отображаться прямо в уведомлении, когда пользователь нажмет на него с усилием (force-tap).
Включить эту функциональность очень просто, это потребует минимум кода. Давайте это сделаем!
1. Создание Notification Service Extension
Anchor link toСначала создайте Notification Service Extension. Это расширение загружает контент, который будет показан пользователю.
Добавьте новую цель (target) в ваш проект (File -> New -> Target) и создайте Notification Service Extension.

2. Код Notification Service Extension
Anchor link toЭтот код загружает вложение и вызывает обработчик контента уведомления. Просто скопируйте и вставьте его в ваше расширение.
import UserNotificationsimport PushwooshFramework
class NotificationService: UNNotificationServiceExtension {
var contentHandler: ((UNNotificationContent) -> Void)? var bestAttemptContent: UNMutableNotificationContent?
override func didReceive(_ request: UNNotificationRequest, withContentHandler contentHandler: @escaping (UNNotificationContent) -> Void) { PWNotificationExtensionManager.shared().handle(request, contentHandler: contentHandler) }}
#import "PWNotificationExtensionManager.h"
@interface NotificationService : UNNotificationServiceExtension
@end
@implementation NotificationService
- (void)didReceiveNotificationRequest:(UNNotificationRequest *)request withContentHandler:(void (^)(UNNotificationContent * _Nonnull))contentHandler { [[PWNotificationExtensionManager sharedManager] handleNotificationRequest:request contentHandler:contentHandler];}
@end
3. Разрешение небезопасных URL-адресов для вложений
Anchor link toNotification Service Extension — это отдельный бинарный файл, у которого есть собственный файл Info.plist. Добавьте App Transport Security Settings с флагом Allow Arbitrary Loads, установленным в значение true
, в файл Info.plist вашего расширения.
Info.plist:
<key>NSAppTransportSecurity</key><dict> <key>NSAllowsArbitraryLoads</key> <true/></dict>
4. Отправка rich-уведомления
Anchor link toЧтобы отправить rich-уведомление, просто укажите URL-адрес файла в поле BANNER URL.

Вжух! Нажмите на уведомление с усилием, и всё готово!

Поделитесь с нами своим мнением
Anchor link toВаши отзывы помогают нам улучшать наш продукт, поэтому мы будем рады, если вы расскажете нам о любых проблемах, возникших в процессе интеграции SDK. Если вы столкнетесь с какими-либо трудностями, пожалуйста, поделитесь своими мыслями с нами через эту форму.