我正在开发一个Flutter健康应用程序,使用HealthKit来跟踪步数和睡眠。我还创建了WidgetKit小工具,使用户可以在不打开应用程序的情况下查看最新的步数和睡眠数据。
在Android上,我使用WorkManager每45分钟左右更新小工具,这效果很好。
然而,在iOS上,一旦应用程序被终止,后台工作就不再可靠,所以我无法定期获取HealthKit数据并更新小工具。
我的主要问题是关于实时HealthKit数据:
- 健康应用程序如何在应用程序已经被终止多天后更新步数小工具?
HKObserverQuery结合HealthKit后台传递是否可以唤醒应用程序,还是直到用户再次启动应用程序,小工具才会停止更新?- 苹果推荐的架构是如何保持HealthKit小工具保持最新状态的?
BGTaskScheduler、WidgetKit时间线、App Intents是否足够解决此类问题,还是有限制,使真正的实时更新成为不可能?- 如果你之前构建过一个基于HealthKit的小工具,如何保持小工具显示最新的步数计数而不需要用户打开应用程序?
我寻求苹果推荐的方法和真实世界的实施经验。如果你有任何建议或相关文档的链接将会非常感谢。
评论 (0)