重复本地通知 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 分钟后每小时重复一次
只有“从那时起”是不可能的。
您可以使用UNCalendarNotificationTrigger
和DateComponents(minute: 43, second: 00)
创建UNNotificationRequest
,因为请求将被添加到UNUserNotificationCenter
,所以它将在每小时XX:43:00 开始触发。
剩下的唯一问题是在晚上 9:44 到晚上 10:42 期间添加它,这样它就不会太早开始触发。我看不到实现这一点的好方法,但如果推送通知对您来说足够好 - 它可能是一个触发器,会将请求添加到通知中心。
【讨论】:
以上是关于重复本地通知 iOS 10的主要内容,如果未能解决你的问题,请参考以下文章