当前位置 : 主页 > 手机开发 > ios >

ios – 如何通过自定义操作解除3D触摸通知?

来源:互联网 收集:自由互联 发布时间:2021-06-11
我正在使用UserNotifications为我的应用程序实现一种警报通知.当3D触摸此通知时,我希望它显示一些“警报信息”,以及“暂停”警报的选项,这将在5分钟内有效地重复通知. 这一切都正常,但
我正在使用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”按钮,如图所示:(内容已移除)Notification

当我单击“Snooze”按钮时,将调用UNNotificationContentExtension委托方法,特别是func didReceive(_ response:completion

网友评论