当应用程序处于终止/终止状态时触发推送通知

时间:2018-09-12 12:51:39

标签: ios swift firebase push-notification firebase-cloud-messaging

我正在基于设备到设备的推送通知的iOS应用程序上工作。当应用程序处于前台和后台时,我的通知工作正常。但是当应用程序处于终止状态时,它无法按要求运行。我有一个具有两个按钮(接受和拒绝)的自定义通知。当应用程序处于终止状态时,我能够收到通知,但无法对按钮执行操作。但是,当应用程序处于前台或后台时,它可以完美运行。你们能帮我吗?我已经在这个领域呆了很长时间了。

注意:我正在使用FCM生成推送通知。有效负载位于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()
}

0 个答案:

没有答案