早安先生
我知道以这种方式使用UNCalendarNotificationTrigger:
var dateComponents = DateComponents()
dateComponents.hour = 10
dateComponents.minute = 30
let trigger = UNCalendarNotificationTrigger(dateMatching: dateComponents, repeats: true)
每天10:30都会发出通知。
我的问题是,如果通知仍会传递,用户是否会在此之后打开应用程序或电话。
答案 0 :(得分:0)
本地通知一旦创建并安排,就与您的应用无关。它们放在系统的手中,从那时开始处理它们。这就是用户通知中心的用途。
通知将始终触发。是否“交付”取决于“交付”的含义。
用户可以关闭通知,在这种情况下,通知触发时将不会显示通知警报。但是,如果用户已选择在通知中心中允许通知警报和通知,则通知将可见。如果您的应用未运行,则会发生这种情况。
如果您的应用 在通知触发时正在运行,那么您可以将自己设置为notification center delegate以便了解它。如果您不这样做,那么默认情况下,警报将对用户不可见。
如果“用户在那段时间之后打开了应用程序”,正如您在问题中提出的那样,那么通知的传递已经已经了。如果用户已允许通知警报,则用户已看到警报。您可以咨询通知中心以了解最近的通知。但是,既然您知道通知在10:30开始,如果您的应用程序启动时间是10:40,那么它所要做的就是查看当前时间以了解发生了什么。