我们正在开发一个类似于 native 日历应用程序的 iOS 应用程序。该应用程序从 native 日历数据库同步数据。它还会在开始时间之前(例如 10 分钟之前)触发每个日历条目/ session 的本地通知。
有人可以帮助我们解决我们面临的以下问题。
1) 如何确保在 native 日历数据库发生任何更改时立即更新我的应用程序。每当有任何新 session 或重新安排现有 session 时,我都希望调用一段自定义代码。我知道这可以通过订阅 App Foreground 通知来实现,但是即使应用程序在后台,仍然可以执行代码。
2) 在每次 session 前 10 分钟触发本地通知的最佳方法是什么?我是否应该运行后台服务并定期检查接下来 10 分钟内是否有任何 session ?或者我应该一次安排所有本地通知。但是,在这种情况下,我不确定如何处理在应用程序处于后台时可以重新安排 session 或者是否有任何新 session 出现的情况。
最佳答案
- 你不能,因为你的应用不属于 在后台运行。
- 您不能运行后台服务 在 iOS 上,您必须安排本地通知 应用程序正在运行。但要注意最多有 64 个预定的本地 通知。此外,您永远不会知道通知何时显示,因为这是由 iOS 而不是您的应用程序处理的。
最好的选择是使用推送通知,这些将在服务器端进行,因此没有 64 个预定限制。使用推送通知选项,当事件发生变化时,只有服务器必须知道它。因为它是发送通知的人。
另一种选择是使用 EventKit
并在用户日历中安排事件。
关于iphone - 在后台接收 iOS 通知::本地通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16768171/