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

2. Код Notification Service Extension
Section titled “2. Код Notification Service Extension”Этот код загружает вложение и вызывает обработчик содержимого уведомления. Просто скопируйте и вставьте его в ваше расширение.
import UserNotificationsimport WavesendFramework
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];}
@end3. Разрешение небезопасных URL-адресов вложений
Section titled “3. Разрешение небезопасных URL-адресов вложений”Notification 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-уведомления
Section titled “4. Отправка rich-уведомления”Чтобы отправить rich-уведомление, просто укажите URL-адрес файла в поле BANNER URL.

Вуаля! Нажмите на уведомление с усилием (force-tap), и все готово!

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