有什么办法可以在后台监听 EKEventStoreChanged 吗?

问题描述 投票:0回答:1

我正在开发一款使用 EventKit 的日历应用程序,一切都运行良好,但有一个例外:通知。如果活动在我的应用程序之外以任何方式发生更改(例如,由组织者或来自 calendar.google.com 的用户等)。那么通知不会更新,直到打开应用程序或 BGAppRefreshTask 或静默推送唤醒设备进行检查。我已经尝试了这两种方法,但它们都不是很可靠(系统可能会决定何时或是否运行后台任务,并且静默推送通知也可能不会发送),但这些方法最多可以每 30m 或每小时运行一次,并且会有影响电池寿命。

更好的方法是,即使应用程序位于后台,我也可以以某种方式响应 EKEventStoreChanged 通知,并在设备听到后立即更新本地通知。这确实适用于 Mac Catalyst,但不适用于 iOS,因为 iOS 上电池更受关注。所以我理解苹果不允许这样做的原因,但我想检查一下是否有一些我缺少的方法可以做到这一点。也许是扩展或某种订阅更新的方式。这会更高效、更可靠。

附注我尝试过通过 UserNotifications 和 Firebase Cloud Messaging 来发送通知,两者都有各自的优点和缺点,但都无法解决主要问题,即如果你的老板向你发送邀请或组织者更新了活动,你就不会'如果静默推送或 BGAppRefreshTask 失败,则要等到 1 小时甚至更长时间后才能了解。不过,如果有任何可以提供帮助的地方,可以使用 Firebase。

提前致谢。这是一个大问题,因为我似乎只有不好的选择,所以任何建议将不胜感激。

swift notifications eventkit
1个回答
0
投票

@cristianmoisei 我正在处理这个完全相同的问题。找到解决方案有运气吗?

© www.soinside.com 2019 - 2024. All rights reserved.