我正在基于设备到设备的推送通知的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()
}