0

早安先生们

我知道以这种方式使用 UNCalendarNotificationTrigger:

var dateComponents = DateComponents()
dateComponents.hour = 10
dateComponents.minute = 30
let trigger = UNCalendarNotificationTrigger(dateMatching: dateComponents, repeats: true)

每天 10:30 会发出通知。

我的问题是用户是否在该时间之后打开应用程序或调用,如果无论如何都会发送通知。

4

1 回答 1

0

本地通知一旦创建和安排,就与您的应用程序无关。它们被放在系统的手中,从那时起它就会照顾它们。这就是用户通知中心的用途。

通知将始终触发。是否会“交付”取决于您所说的“交付”是什么意思。

用户可以关闭通知,在这种情况下,当通知触发时不会有可见的通知警报。但是,如果用户在通知中心选择了允许通知警报和通知,则通知将可见。如果您的应用程序没有运行,就会发生这种情况。

如果您的应用程序在通知触发时正在运行,那么您可以将自己设置为通知中心代表以听取通知。如果您不这样做,则默认情况下,用户将看不到警报。

如果“用户打开应用程序......在那之后”,正如您在问题中所问的那样,那么通知的传递已经发生。如果用户允许通知警报,则用户已经看到警报。您可以咨询通知中心以了解最近的通知。但是由于您知道通知是在 10:30 触发的,如果您的应用程序在 10:40 启动,它所要做的就是查看当前时间以了解发生了什么。

于 2017-02-04T03:52:03.343 回答