Ios 通知不会触发
我正在尝试从上午x点到下午y点每5分钟创建一次相同的通知Ios 通知不会触发,ios,swift,notifications,unusernotificationcenter,Ios,Swift,Notifications,Unusernotificationcenter,我正在尝试从上午x点到下午y点每5分钟创建一次相同的通知 UNUserNotificationCenter.current().requestAuthorization(options: [ .alert, .sound, .badge], completionHandler: {didAllow, error in}) let hours: [Int] = [13] for hour in hours { for minute in stride(from:
UNUserNotificationCenter.current().requestAuthorization(options: [ .alert, .sound, .badge], completionHandler: {didAllow, error in})
let hours: [Int] = [13]
for hour in hours {
for minute in stride(from: 35, to: 40, by: 1){
let content = UNMutableNotificationContent()
content.title = "Title"
content.body = "Notification body"
var dateComponents = DateComponents()
dateComponents.hour = hour
dateComponents.minute = minute
print(dateComponents)
let trigger = UNCalendarNotificationTrigger(dateMatching: dateComponents, repeats: true)
let request = UNNotificationRequest(identifier: ("\(hour)"+"\(minute)"+"timerDone"), content: content, trigger: trigger)
let center = UNUserNotificationCenter.current()
center.add(request, withCompletionHandler: nil)
center.getPendingNotificationRequests(completionHandler: { requests in
for request in requests {
print(request.trigger)
}
})
}
}
它不会在计划时间显示通知,但
center.getPendingNotificationRequests(completionHandler: { requests in
for request in requests {
print(request.trigger)
}
})
在调试中打印有挂起的通知。
所以,通知被添加到中心并等待时间,但不要触发
有什么想法吗
调试结果显示:
小时:13分钟:35个月:假
小时:13分钟:36个月:假
小时:13分钟:37个月:假
小时:13分钟:38个月:假
小时:13分钟:39个月:假
可选的(
时间:13
分钟:35,重复:是>)
可选的(
时间:13
分钟:36,重复:是>)
可选的(
时间:13
分钟:37,重复:是>)
可选的(
时间:13
分钟:38,重复:是>)
可选的(
时间:13
分钟:39,重复:是>)
根据您的信息,应用程序在
后台状态下运行
,您的应用程序可能在从操作系统运行一段时间后被挂起
背景
应用程序位于后台,正在执行代码。大多数应用程序都会进入此状态
简要说明他们即将被停职的情况。然而,一个应用程序
请求额外的执行时间可能会在此状态下保留一段时间
时间此外,一款直接在后台启动的应用程序
进入此状态,而不是非活动状态。有关
如何在后台执行代码,请参阅后台执行
暂停
应用程序位于后台,但未执行代码。系统
将应用程序自动移动到此状态,之前不会通知它们
这样做。挂起时,应用程序仍保留在内存中,但不会
执行任何代码。当内存不足时,系统可能会
在不通知的情况下清除挂起的应用程序,为应用程序腾出更多空间
前台应用程序
我还需要说,即使你运行了一些代码,操作系统也会挂起你的应用程序。如果您使用位置(地理围栏)
或voip
功能,则会出现一些例外情况
请查看以下文档:
根据您的信息,应用程序在
后台状态下运行
,您的应用程序可能会在离开操作系统一段时间后被挂起
背景
应用程序位于后台,正在执行代码。大多数应用程序都会进入此状态
简要说明他们即将被停职的情况。然而,一个应用程序
请求额外的执行时间可能会在此状态下保留一段时间
时间此外,一款直接在后台启动的应用程序
进入此状态,而不是非活动状态。有关
如何在后台执行代码,请参阅后台执行
暂停
应用程序位于后台,但未执行代码。系统
将应用程序自动移动到此状态,之前不会通知它们
这样做。挂起时,应用程序仍保留在内存中,但不会
执行任何代码。当内存不足时,系统可能会
在不通知的情况下清除挂起的应用程序,为应用程序腾出更多空间
前台应用程序
我还需要说,即使你运行了一些代码,操作系统也会挂起你的应用程序。如果您使用位置(地理围栏)
或voip
功能,则会出现一些例外情况
请查看以下文档:
您的设备处于哪种状态?前台、后台还是挂起?@AlexWoe89 background是否计划每5分钟发送一次本地通知?如果是这样,则可以使用时间间隔。只是works@Mannopson不太好,我需要安排每天早上8点到晚上8点(例如)每5分钟发送一次本地通知。通过使用时间间隔,我不能在特定时间停止,而从第二天需要的小时开始。您的设备处于哪种状态?前台、后台还是挂起?@AlexWoe89 background是否计划每5分钟发送一次本地通知?如果是这样,则可以使用时间间隔。只是works@Mannopson不太好,我需要安排每天早上8点到晚上8点(例如)每5分钟发送一次本地通知。通过使用时间间隔,我不能在特定的时间停止,从我需要的第二天的小时开始。当它运行时,我按Home按钮查看是否会出现通知。当我不使用循环,只在特定时间发出1个通知时,它就会触发。但是,当我想在for循环中执行它时,它不会fireWell,我会运行应用程序。当它运行时,我按Home按钮查看是否会出现通知。当我不使用循环,只在特定时间发出1个通知时,它就会触发。但当我想在for循环中执行时,它不会启动