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

时间:2018-10-16 21:55:43

标签: core-location watch-os clockkit

从并发症中找出用户的经纬度的规定方法是什么?

我尝试实例化复杂控制器内部的位置管理器,并使用requestLocation和startUpdatingLocation来请求位置。都不响应更新。

我正在使用watchOS 4.0和iOS 9.3。

非常感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

并发症本身仅是用户界面的显示项目。必须使用WKRefreshBackgroundTask在WKExtensionDelegate中进行任何所需的处理。还要阅读背景模式。

答案 1 :(得分:1)

一些要点:

  1. 不要在Complication Controller中执行任何计算或异步请求,您将很快消耗掉一天的并发症更新预算,并且操作系统将在几秒钟后暂停该过程。

    < / li>
  2. 您可以在前台(无限制)或在后台的扩展代表中使用“核心位置”。如果要在后台使用它,则需要将UIBackgroundModes设置为WatchKit Extension的Info.plist中的位置,并将位置管理器的allowBackgroundLocationUpdates属性设置为true。当您不需要持续更新位置时,请不要忘记将其设置为false。例如,如果您需要在后台请求一次位置,请在收到位置信息后将其关闭。

  3. 您一天只能多次更新并发症(Apple不会发布确切数字)。您可以期望每小时至少更新4-6次,可能更多,但绝对不是每分钟更新一次。这样您就不必再为并发症显示任何实时数据了。