2

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

我尝试在复杂控制器内实例化一个位置管理器,并使用 requestLocation 和 startUpdatingLocation 请求位置。两者都没有响应更新。

我正在使用 watchOS 4.0 和 iOS 9.3。

任何帮助是极大的赞赏。

4

2 回答 2

3

几个重要的点:

  1. 不要在您的复杂控制器中进行任何计算或异步请求,您将很快耗尽一天的复杂更新预算,而且操作系统将在几秒钟后暂停该过程。

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

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

于 2018-10-20T05:39:16.223 回答
1

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

于 2018-10-17T16:48:49.910 回答