Расширение уведомлений FCM + iOS + - PullRequest
0 голосов
/ 23 апреля 2019

Я использую push-уведомления iOS, используя FCM.Но я хочу показать изображение с моим уведомлением.Вот почему я склоняюсь к реализации UNNotificationServiceExtension

. Я сделал следующее.Добавьте новый target> notification service extension.Эта цель в настоящее время содержит

enter image description here

class NotificationService: UNNotificationServiceExtension {

    var contentHandler: ((UNNotificationContent) -> Void)?
    var bestAttemptContent: UNMutableNotificationContent?

    override func didReceive(_ request: UNNotificationRequest, withContentHandler contentHandler: @escaping (UNNotificationContent) -> Void) {
        self.contentHandler = contentHandler
        bestAttemptContent = (request.content.mutableCopy() as? UNMutableNotificationContent)

        if let bestAttemptContent = bestAttemptContent {
            // Modify the notification content here...
            bestAttemptContent.title = "\(bestAttemptContent.title) [modified]"
            bestAttemptContent.subtitle = "Hey from extension"

            contentHandler(bestAttemptContent)
        }
    }

    override func 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.
        if let contentHandler = contentHandler, let bestAttemptContent =  bestAttemptContent {
            contentHandler(bestAttemptContent)
        }
    }

}

После этого я отправляю push-уведомление со следующей полезной нагрузкой:

enter image description here

Получено push-уведомление и т. Д., Однако оно не проходит через расширение, поскольку оно не содержит мои измененные данные, которые я добавил в NotificationService

Что такоеМне не хватает, как мне убедиться, что мое модифицированное расширение вызывается при получении push

1 Ответ

0 голосов
/ 23 апреля 2019

Оказалось, что мне нужно сопоставить цель развертывания моего приложения с целью развертывания Push Extension

enter image description here

...