在我的应用程序中,用户将设置时间。在那个时候,我需要向他们发送每日通知,其中包含新创建的约会。例如,假设有3个约会在" 01-03-2017"。因此,在那一天,在选定的时间,用户应该收到通知,提到"您有3个新约会"。新添加的约会将保存在本地领域db中。
实际上我要做的是每天用户提到的时间,应该运行代码段并检查db中是否有任何新的约会。如果需要,请点击本地通知。即使应用程序很接近这应该工作。我在Android中看到我们可以使用报警管理器来完成此操作。但是我很快就没有办法做到这一点。
我不是斯威夫特的专家。如果你能给我一个解释的解决方案,那么感谢你。感谢您的时间。
答案 0 :(得分:0)
您将无法在所需的时间运行代码,因为iOS无法执行此操作。
但是,如果更新领域数据库,则意味着应用程序正在运行以添加新约会。
当它发生时,您可以使用类似于以下的功能来创建本地通知
func createLocalNotification(atDate date: DateComponents, appointmentCount: Int) {
var content = UNMutableNotificationContent()
content.title "You have \(appointmentCount) appointment(s) today"
content.badge: appointmentCount
let trigger = UNCalendarNotificationTrigger(dateMatching: date, repeats: false)
let notificationRequest = UNNotificationRequest(identifier: "notification-request-\(date.day!)-\(date.month!)-\(date.year!)", content: content, trigger: trigger)
UNUserNotificationCenter.current().add(notificationRequest)
}