使用日期选择器的本地 UNMutableNotificationContent 触发日期

Posted

技术标签:

【中文标题】使用日期选择器的本地 UNMutableNotificationContent 触发日期【英文标题】:Local UNMutableNotificationContent fire date using Date picker 【发布时间】:2016-09-07 01:49:57 【问题描述】:

所以我一直在尝试实现 ios 10 本地通知,首先我认为代码与 iOS 9 相同,只是添加了一个通知扩展目标。但是它实际上使用了UNMutableNotificationContent 类,

我可以使用时间间隔设置带有通知的通知,但是如何使用日期选择器专门设置触发日期?

import UserNotifications

let dateFormatter = DateFormatter()
dateFormatter.dateStyle = .full
let displayDate  = dateFormatter.string(from: datePicker.date)

let notif = UNMutableNotificationContent()

notif.title = "Reminder)"
notif.subtitle = "\(displayDate)"
notif.body = "Details"
notif.categoryIdentifier = "Details Reminder"

let notifTrigger = UNTimeIntervalNotificationTrigger(timeInterval: 5, repeats: false)

let request = UNNotificationRequest(identifier: "myNotif", content: notif, trigger: notifTrigger)

UNNotificationRequest 触发器需要 UNTimeIntervalNotificationTrigger 类型,我希望我可以添加一个日期。

我是否必须使用当前日期和日期选择器日期来计算间隔时间?或者我可以通过其他方式做到这一点

【问题讨论】:

【参考方案1】:

您需要提供从“现在”到您希望发送通知的时间间隔。

let interval = laterDate.timeIntervalSince(earlierDate)

在这种情况下,earlierDate 应该是“现在”(即 Date()),我假设 laterDate 是您的 datePicker.date

【讨论】:

【参考方案2】:

您应该使用 UNCalendarNotificationTrigger。

UNCalendarNotificationTrigger.init(dateMatching: NSCalendar.current.dateComponents([.day, .month, .year, .hour, .minute], from: <<YOUR_DATE>>), repeats: false)

【讨论】:

以上是关于使用日期选择器的本地 UNMutableNotificationContent 触发日期的主要内容,如果未能解决你的问题,请参考以下文章

引导日期选择器的问题

vuejs在选择后获取日期选择器的值

Excel中进行插入日期选择器的操作技巧

如何更改日期范围选择器的日期格式?

iPhone,如何在代码中将日期选择器的最小日期设置为今天?

带有引导日期选择器的 Laravel 4