ios - 在为其设置的时间之前触发所有待处理的通知

标签 ios swift uilocalnotification unusernotificationcenter unusernotification

在我正在开发的应用程序中,有一个选项可以触发通知 x 在为所述通知设置的实际时间之前的时间量。例如,我将提醒设置为 10:00。但是在应用程序的本地设置中,我将通知设置为在设置时间前 10 分钟触发。因此,在本例中,通知将在 9:50 触发。

现在,我可以在设置个人通知时间时执行上述操作。但我想做的是在为其设置的实际时间之前触发所有待处理的通知。

这是我用来设置通知的函数:

func scheduleNotification(at date: Date, identifier: String, threadIdentifier: String, body: String) {
    let calendar = Calendar(identifier: .gregorian)
    let components = calendar.dateComponents(in: .current, from: date)
    let newComponents = DateComponents(calendar: calendar, timeZone: .current, year: components.year, month: components.month, day: components.day, hour: components.hour, minute: components.minute)

    let trigger = UNCalendarNotificationTrigger(dateMatching: newComponents, repeats: false)

    let content = UNMutableNotificationContent()
    content.title = "TestNotification"
    content.body = body
    content.threadIdentifier = threadIdentifier
    content.sound = UNNotificationSound.default()

    let request = UNNotificationRequest(identifier: identifier, content: content, trigger: trigger)

    UNUserNotificationCenter.current().add(request) {
        error in

        if let error = error {
            print("Error in delivering notification. Error: \(error.localizedDescription)")
        }
    }
}

日期来自日期选择器设置的日期。我尝试使用以下代码更改触发器属性:

UNUserNotificationCenter.current().getPendingNotificationRequests { (requests) in
    for request in requests {
            request.trigger = UNTimeIntervalNotificationTrigger(timeInterval: 10*60, repeats: false)
    }
}

但现在我收到一条错误消息,提示“trigger”是一个只获取属性。

最佳答案

无法更改已安排通知的触发时间,您可以删除所有通知并重新安排

关于ios - 在为其设置的时间之前触发所有待处理的通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48827567/

相关文章:

ios - UITableViewCells 中的复选标记显示不正确

ios - 在 Swift 中,如果我有一个 UITabBarController,我如何在切换选项卡之前弹出我当前的 navigationController?

swift - AVSpeechUtterance - Swift - 用短语初始化

ios - 处理作用于 UILocalNotification 的用户

iOS UILocalNotification 已计划,但未触发

ios - 带有振动的 UILocalNotification

ios - 如何在页面之间滑动,同时保持某些对象静止

ios - 在 XCode Instruments 中,有没有办法在运行时通过 Javascript 找到模拟器的 iOS 版本

ios - 是否可以为 UICollectionView 中的每个单元格创建一个标题?

ios - 如何 UISearchcontroller customcell swift