如何实现Swift本地通知定时触发后每分钟重复直至停止?
目标
我想确认是否仍可实现:在指定时间(例如每日15:00)触发Swift本地通知,之后每分钟重复推送直至通知被停止。
可行性依据
我知道过去可以实现此功能,因为我日常使用的提醒应用“Alarmed”正是这么做的!它允许设置多达64个(当前本地通知的调度上限)同时触发的闹钟。即使强制关闭应用,所有64条通知仍会按时推送;若忽略这些通知,它们会持续每分钟重复推送一次(时长超过2小时),这正是我自己的应用想要实现的效果……
我还测试过该应用(Alarmed),在关闭位置追踪权限且完全强制关闭的情况下,它仍能正常工作,说明它并未使用重新调度的技巧……
问题
我无法通过UNMutableNotificationContent API实现此功能。将触发器类型设置为UNCalendarNotificationTrigger,例如:
let trigger = UNCalendarNotificationTrigger(dateMatching: DateComponents(year: 2022, month: 1, hour: 10, minute: 25), repeats: true)
确实会在指定日期/时间触发通知,但如果通知被忽略或错过,不会在之后每分钟重复推送;而UNTimeIntervalNotificationTrigger:
let trigger = UNTimeIntervalNotificationTrigger(timeInterval: 60, repeats: true)
会每分钟重复推送直至停止,但会立即开始重复(我认为这是个无意义的功能)!
我想将两者结合:先用Calendar触发器设置首次通知的触发时间,之后用Time Interval触发器从该时间点开始每分钟推送通知……但这似乎无法实现。
疑问
有没有人知道可以实现此功能的API(无论是当前版本还是该应用最后更新时的7年前版本)?即使当前API无法实现,我也只是出于好奇,因为我已经花了好几天时间研究如何实现!🙈
内容的提问来源于stack exchange,提问作者GazB
相关产品推荐
相关产品推荐

