1

我有一个 iOS 应用程序和操作扩展程序,它们通过应用程序组通用的 UserDefaults 共享数据。

当用户使用操作扩展添加模型数据,并且 iOS 应用程序在后台时,我可以使用 KVO 观察有问题的 UserDefaults 键,并启动 Watch 应用程序的后台刷新 - 这很有效。

但是,如果应用程序不在后台,而是完全处于非活动状态怎么办?KVO 显然不会发生。iOS 应用程序将在下次启动时(手动或通过后台刷新)获取对 UserDefaults 的更改并将这些更改传播到手表,但与此同时,手表数据在下一次刷新之前是不同步的。

我能想到解决这个问题的唯一方法是让 Action Extension 启动一个远程、静默通知推送到 iOS 应用程序,然后对手表进行后台刷新。但这似乎有点……重手?通过网络访问位于同一设备上的应用程序及其扩展程序。

我缺少什么解决方案?

4

0 回答 0