从 Apple Watch Complication 获取核心位置数据的最佳方式?

Best way to get Core Location data from an Apple Watch Complication?

从复杂功能中计算出用户的经纬度的规定方法是什么?

我已经尝试在并发症控制器中实例化一个位置管理器,并请求位置,两者都使用 requestLocation 和 startUpdatingLocation。两者均未响应更新。

我正在使用 watchOS 4.0 和 iOS 9.3.

非常感谢任何帮助。

复杂功能本身只是用户界面的一个显示项。任何需要的处理都必须在 WKExtensionDelegate 中使用 WKRefreshBackgroundTask 进行处理。也请阅读背景模式。

几个要点:

  1. 不要在您的 Complication Controller 中进行任何计算或异步请求,您将很快用完一天的复杂功能更新预算,而且 OS 将在几秒钟。

  2. 您可以在前台(无限制)或后台使用 Extension Delegate 中的核心位置。如果你想在后台使用它,你需要将 UIBackgroundModes 设置为 location 在你的 WatchKit Extension 的 Info.plist 和你的位置管理器的 allowBackgroundLocationUpdates 属性 为真。当您不需要不断更新位置时,请不要忘记将其设置为 false。例如,如果您需要在后台请求一次位置,请在收到位置修复后将其 属性 关闭。

  3. 您一天只能更新这么多次您的并发症(Apple 没有公布确切的数字)。您可以期望每小时至少更新 4-6 次,可能更多,但绝对不是每分钟。因此,您可以忘记在复杂功能上显示任何实时数据。