我正在使用UserNotifications为我的应用程序实现一种警报通知.当3D触摸此通知时,我希望它显示一些“警报信息”,以及“暂停”警报的选项,这将在5分钟内有效地重复通知. 这一切都正常,但
这一切都正常,但单击“暂停”按钮时通知不会被解除.
我正在使用NotificationContentExtension来修改内容,使用categoryIdentifier“ReminderNotificationExtensionCategory”.然后我在代码中创建了我的类别,如下所示:
let snooze = UNNotificationAction(identifier: "snoozeActionIdentifier", title: NSLocalizedString("SNOOZE", comment: ""), options: .foreground) let reminderCategory = UNNotificationCategory(identifier: "ReminderNotificationExtensionCategory", actions: [snooze], intentIdentifiers: [], options: .customDismissAction) UNUserNotificationCenter.current().setNotificationCategories([reminderCategory])//Not sure if I should set this every time or just once..
然后我创建我的通知对象
let content = UNMutableNotificationContent() content.categoryIdentifier = "ReminderNotificationExtensionCategory" content.title = "test" content.body = "test" let trigger = UNTimeIntervalNotificationTrigger(timeInterval: 3, repeats: false) //Fire in 3 seconds let request = UNNotificationRequest(identifier: "someIdentifier, content: content, trigger: trigger) UNUserNotificationCenter.current().add(request) { (error:Error?) in /**/}
现在,我的通知将在3秒后发送.
我锁定屏幕并接收它,它看起来很棒.当我3D触摸它时,我的扩展程序启动了,我在我设置的UIView上得到了一个潜行峰值,以及通知下方的“Snooze”按钮,如图所示:(内容已移除)
当我单击“Snooze”按钮时,将调用UNNotificationContentExtension委托方法,特别是func didReceive(_ response:completion