【问题标题】:Does removeAllPendingNotificationRequests() cancels local time notifications forever?removeAllPendingNotificationRequests() 是否会永远取消本地时间通知?
【发布时间】:2020-06-12 14:19:06
【问题描述】:

我的 swift 应用程序中有一个时间通知,它每天在 8 点在本地发送推送通知。我想添加一个按钮,以便如果按下它,它只会取消当天的推送通知。我的问题是removeAllPendingNotificationRequests() 会做这项工作还是会永远取消时间通知?

【问题讨论】:

    标签: swift push-notification notifications apple-push-notifications unusernotificationcenter


    【解决方案1】:

    它会取消您已注册的所有待处理通知。在您的场景中,您可以将您正在注册的Notificationidenfifiers 存储在字典中,其中键对应于Date 类型的每一天,值是identifiers 的数组输入[String]。如果您想取消特定 Date 的所有 Notification,您可以从上述字典中获取该日期的 String 标识符数组,然后像下面这样取消它们,这是一个示例:

    let notificationsDictionary = [Data: [String]]()
    guard let notificationsForToday = notificationDictionary[Data()] else { return }
    UNUserNotificationCenter.current().removePendingNotificationRequests(withIdentifiers: notificationsForToday)
    

    【讨论】:

    • 但是removeDeliveredNotifications在发送通知后不会删除它们吗? (已交付)
    • 抱歉,自动完成错误。现在看看,我已经更新了。
    猜你喜欢
    • 2019-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-21
    • 1970-01-01
    相关资源
    最近更新 更多