本地通知数据

时间:2019-04-29 12:28:33

标签: ios swift

您好,我在iOS应用程序中遇到一个问题。我已经在互联网上搜索,没有找到解决方案。大多数解决方案都使用不推荐使用

func application(_ application: UIApplication, didReceive notification: UILocalNotification)

因此情况如下:

每天安排5条本地通知的应用程序,这没问题,并且有效:

 var dateComponents = DateComponents()
    dateComponents.weekday = Date().dayNumberOfWeek()
    dateComponents.hour = hour
    dateComponents.minute = minute
    dateComponents.second = 5

    let notificationTrigger = UNCalendarNotificationTrigger(dateMatching: dateComponents, repeats: false)

    let request = UNNotificationRequest(identifier: "identifier", content: notifcation, trigger: notificationTrigger)
    UNUserNotificationCenter.current().add(request, withCompletionHandler: nil)

但是我的问题是:是否可以找出何时触发通知而与应用程序状态无关,并从该通知中获取数据?

因为每个通知的时间都是从API中检索的,所以我不知道何时(小时和分钟)通知将被安排。

例如,在Android中,我使用AlarmManager API计划通知,然后通过扩展BroadcastReciver来轻松地进行通知,我可以获取每个触发的通知并获取通过Intent发送的数据。

我需要找出当天的最后(第五次)通知何时发出,以便执行其他工作。

1 个答案:

答案 0 :(得分:1)

简而言之,不,无论应用程序状态如何,都不会收到通知。

如果应用程序在前台运行,则可以使用UNUserNotificationCenterDelegate方法执行此操作,但是如果您的应用程序不在前台运行,则只有从通知中打开(滑动或轻击它),应用程序才会知道该通知。