2017-02-27 69 views
0

在我的应用程序中,用户将设置一个时间。那时我需要每天向他们发送通知,并附上新创建的约会次数。例如,假设在“01-03-2017”上有3个约会。因此,在那一天,在选定的时间,用户应该收到一个通知,提及“您有3个新的约会”。新添加的约会将保存在本地领域数据库中。Swift - 每日本地通知事件

其实我要做的就是每天用户提到的时间,应该运行一段代码并检查数据库中是否有新约会。如果需要,请发出本地通知。即使应用程序是关闭这应该工作。我看到,在Android中,我们可以使用警报管理器来完成此操作。但在迅速,我没有找到一个方法来做到这一点。

我不是swift的专家。所以,如果你能给我一个解释的解决方案,那么很感激。感谢您的时间。

回答

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) 
} 
+0

谢谢大家的响应函数。这意味着我们必须为特征日期安排通知吗?我对么? –

+0

是的。当约会进入时(例如在保存到域后),您可以调用此方法,在想要通知用户他有约会时,用日,月,年,小时和分钟配置一个DateComponents对象。 – tomahh

+0

由于该请求使用包含日期,月份和年份的标识符进行标记,因此同一日期**的任何进一步调用**将覆盖先前添加的请求(请参阅[文档](https://developer.apple.com/) reference/usernotifications/unnotificationrequest/1649634-identifier)) – tomahh