【发布时间】:2018-03-07 08:29:54
【问题描述】:
我一直致力于在我正在开发的这个应用上获取本地通知。我已经在标题、正文蚀刻中设置了带有一些文本的通知内容,然后设置了 UNCalendarNotificationTrigger
NSDate *tenSecondsFromNow = [cal dateByAddingUnit:NSCalendarUnitSecond value:10 toDate:[NSDate date] options:NSCalendarMatchFirst]
UNCalendarNotificationTrigger* trigger = [UNCalendarNotificationTrigger
triggerWithDateMatchingComponents:[cal components:NSCalendarUnitYear |
NSCalendarUnitMonth|
NSCalendarUnitDay|
NSCalendarUnitWeekday |
NSCalendarUnitHour|
NSCalendarUnitMinute|
NSCalendarUnitSecond fromDate:tenSecondsFromNow] repeats:NO];
我安排通知在运行后 10 秒运行
// Schedule the notification.
[_notificationCentre addNotificationRequest:request withCompletionHandler:^(NSError * _Nullable error) {
if (error != nil) {
DDLogError(@"%@", error.localizedDescription);
DDLogError(@"%@", @"couldn't create chore reminder notification");
}
}];
我正在苦苦挣扎的是,当我在模拟器上运行此代码时,通知完全符合我的预期,在我在前台或后台运行这段代码后 10 秒向我显示通知。但是,当我在我的设备上运行它时,通知不会出现。但是,当我在这里将触发器更改为 UNTimeIntervalNotificationTrigger 设置时
UNTimeIntervalNotificationTrigger *trigger = [UNTimeIntervalNotificationTrigger triggerWithTimeInterval:10 repeats:NO];
这本质上是在做同样的事情,在调用addNotificationRequest 函数后 10 秒安排通知。这适用于模拟器和我的设备。
我想知道是否有一些奇怪的时间正在发生?或者模拟器处理通知的方式可能与设备略有不同。无论哪种方式,我都不知道发生了什么。
【问题讨论】:
标签: ios objective-c unusernotificationcenter