2

因此,在 watchOS 上,我知道您可以安排(和重新安排)aWKRefreshBackgroundTask在后台为您工作。这对我的应用程序来说非常有用,可以确保 watchOS 上的数据是最新的 - 特别是因为它没有像 iOS 和 macOS 这样接收更新。

除了,我的数据使用 CloudKit 来存储用户的数据。

我想使用类似URLSession场景的东西,您可以在其中安排WKApplicationRefreshBackgroundTask创建后台URLSession任务并将其交给系统的地方。系统反过来会为WKURLSessionRefreshBackgroundTask您提供检查数据是否完成的位置URLSession(通过检查下载的数据是否存在)。

我的问题是,你如何用 CloudKit 做这样的事情?

我可以在 中下载我的用户数据WKApplicationRefreshBackgroundTask,但我认为我不能保证它会在系统提供给我的应用程序的时间内完成。这就是为什么(似乎)Apple 建议您将其拆分为两个后台任务:

  1. WKApplicationRefreshBackgroundTask- 创建URLSession并将其交给系统。
  2. WKURLSessionRefreshBackgroundTask- 对从步骤 1 下载的数据采取行动。

我不确定你可以用 CloudKit 做到这一点吗?或者,至少我似乎找不到类似的东西。

4

1 回答 1

1

如果你想使用WKURLSessionRefreshBackgroundTask你必须通过 URLSession 访问 iCloud 数据库。这可以通过应用程序实现,但要复杂得多。

如果您想尝试一下,请不要忘记在 iCloud 仪表板上为您的数据库获取 API 请求令牌。

于 2018-11-03T19:33:25.210 回答