重复本地通知 iOS 10

Posted

技术标签:

【中文标题】重复本地通知 iOS 10【英文标题】:Repeating local notifications iOS 10 【发布时间】:2017-04-02 01:52:29 【问题描述】:

有没有人成功地使用 UNUserNotificationCenter 安排重复的每小时本地通知而不创建多个请求?

我需要能够安排每小时通知在设置为第一个通知的特定分钟发出。我可以使用旧的 UILocalNotification 框架来做到这一点,但我希望能够利用新通知框架附带的通知扩展、标题、字幕等。

如果无法安排在特定时间每小时重复一次的单个请求,有没有人找到使用多个请求来实现此目的的方法?并且这样做不需要用户对第一个通知采取行动?

我对安排多个请求的另一个担忧是我的应用允许用户创建多个提醒,我不想因为 64 个通知上限而限制用户

编辑: 我目前的用例是早上 6:30,我想安排一个通知在晚上 10:43 触发,然后在每小时 43 分钟后每小时重复一次。这目前可以通过 UILocalNotification 使用 repeatInterval 并将单位设置为小时来实现,因此它将在那个时间和之后的每个小时触发

【问题讨论】:

通知,我用的是OneSignal,不知道有没有可能 这是可能的,但它不是本地的,在这一点上它可能是我要走的路,很多应用程序,如 todo-ist 使用推送提醒等而不是本地的。这只是意味着我必须编写一个 cronjob 来处理重复 很遗憾,使用 Apple 的新 API 无法做到这一点。 【参考方案1】:

句子

安排在晚上 10:43 触发通知 在每小时 43 分钟后每小时重复一次

只有“从那时起”是不可能的。

您可以使用UNCalendarNotificationTriggerDateComponents(minute: 43, second: 00) 创建UNNotificationRequest,因为请求将被添加到UNUserNotificationCenter,所以它将在每小时XX:43:00 开始触发。

剩下的唯一问题是在晚上 9:44 到晚上 10:42 期间添加它,这样它就不会太早开始触发。我看不到实现这一点的好方法,但如果推送通知对您来说足够好 - 它可能是一个触发器,会将请求添加到通知中心。

【讨论】:

以上是关于重复本地通知 iOS 10的主要内容,如果未能解决你的问题,请参考以下文章

针对特定日期重复本地通知 iOS 10

本地通知 - 在 swift 3 中重复间隔

iOS 11-每 x 分钟重复一次的用户本地通知

iOS:日常重复动作的定时器或本地通知

IOS10本地通知使用UNUserNotification时如何设置徽章

iOS 13本地通知未发送