ios - 如何取消用户通知

标签 ios swift xcode nsusernotification

如何禁用/取消已设置的通知?

这是我的日程安排功能。

func scheduleNotif(date: DateComponents, completion: @escaping (_ Success: Bool) -> ()) {

    let notif = UNMutableNotificationContent()

    notif.title = "Your quote for today is ready."
    notif.body = "Click here to open an app."

    let dateTrigger = UNCalendarNotificationTrigger(dateMatching: date, repeats: true)
    let request = UNNotificationRequest(identifier: "myNotif", content: notif, trigger: dateTrigger)

    UNUserNotificationCenter.current().add(request, withCompletionHandler: { error in

        if error != nil {
            print(error)
            completion(false)
        } else {
            completion(true)
        }
    })
}

最佳答案

要取消所有待处理的通知,您可以使用这个:

UNUserNotificationCenter.current().removeAllPendingNotificationRequests()

对于取消特定的通知,

UNUserNotificationCenter.current().getPendingNotificationRequests { (notificationRequests) in
   var identifiers: [String] = []
   for notification:UNNotificationRequest in notificationRequests {
       if notification.identifier == "identifierCancel" {
          identifiers.append(notification.identifier)
       }
   }
   UNUserNotificationCenter.current().removePendingNotificationRequests(withIdentifiers: identifiers)
}

关于ios - 如何取消用户通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40562912/

相关文章:

ios - 无法使用 SWIFT 更新数据库 FMDB 中的字段

ios - 在 Swift 中将 float 转换为 little endian

ios - 如何在 swift 中创建一个 UITableView

ios - 当 ViewController 上的输入无效时,如何禁用导航栏按钮?

ios - SWIFT/CloudKit - 更新记录并将其保存回容器

iphone - 这个 for 循环有什么问题 - 试图用 Tweet 对象填充数组?

xcode - 在 Mac 上开发还是在基于 Windows 的 PC 上使用虚拟机?

ios - 如果已经自定义,如何覆盖 UINavigationBar 外观

xcode -/usr/include/mach-o/loader.h 从哪里来?

iphone - 框架(RestKit)与armv7s不兼容