Запуск push-уведомлений, когда приложение находится в состоянии «остановлено» - PullRequest
0 голосов
/ 12 сентября 2018

Я работаю над приложением для iOS на основе push-уведомлений с устройства на устройство. Мои уведомления работают нормально, когда приложение находится на переднем плане и в фоновом режиме. Но это не работает в соответствии с требованием, когда приложение находится в отключенном состоянии. У меня есть пользовательское уведомление, которое имеет две кнопки (Принять и Отклонить). Когда приложение находится в отключенном состоянии, я могу получить уведомление, но не могу выполнить действие с кнопками. Но когда приложение находится на переднем плане или в фоновом режиме, оно отлично работает. Ребята, не могли бы вы помочь мне с этим? Я застрял в этом надолго.

Примечание. Я использую FCM для создания push-уведомлений. И полезная нагрузка находится в файле index.js.

Это моя функция:

func setActionCategories() {
    let acceptAction = UNNotificationAction(
            identifier:NAString().notificationAcceptIdentifier(),
            title:NAString().accept().capitalized,
            options: [.init(rawValue:0)])

    let rejectAction = UNNotificationAction(
            identifier:NAString().notificationRejectIdentifier(),
            title:NAString().reject().capitalized,
            options: [.init(rawValue:0)])

    let actionCategory = UNNotificationCategory(
            identifier:NAString().notificationActionCategory(),
            actions: [acceptAction, rejectAction],
    intentIdentifiers: [],
    options: [.customDismissAction])

    UNUserNotificationCenter.current().setNotificationCategories(
            [actionCategory])
}

Здесь я выполняю действия над кнопками:

func userNotificationCenter(_ center: UNUserNotificationCenter,
                            didReceive response: UNNotificationResponse,
                            withCompletionHandler completionHandler: @escaping () -> Void) {
    let userInfo = response.notification.request.content.userInfo

    let notificationType = userInfo[Constants.FIREBASE_NOTIFICATION_TYPE] as? String

    if response.notification.request.content.categoryIdentifier == NAString().notificationActionCategory() {


        switch response.actionIdentifier {

        case NAString().notificationAcceptIdentifier():
            Print(“Accept”)


        case NAString().notificationRejectIdentifier():
            Print(“Reject”)
        }
    }
    completionHandler()
}
...