使用 openParentApplication: 和 handleWatchKitExtensionRequest: 将位置更新发送到 Watch App 不工作

Using openParentApplication: and handleWatchKitExtensionRequest: to send location updates to Watch App not working

我正在使用 openParentApplication:handleWatchKitExtensionRequest: 请求并发送一个 NSNumber 对象,该对象包含来自核心位置 locationManager:didUpdateLocation: 方法的值。我这样做是为了让我的 watchkit 应用程序不必担心使用 Core Location,并且我可以使用我已经在我的 iOS 应用程序中编写的所有逻辑。我的 watchkit 扩展的回调似乎工作正常,我在 "reply:" 回调中得到了响应。

但是,直到我在模拟器中手动点击我的应用程序图标,我才从 Core Location 获得任何真实数据。然后我开始从 Core Location 获取真实数据并且我的手表套件界面更新了正确的数据。

这只是模拟器的限制吗?

不,如果你想在你的手表应用程序中使用 Core Location,你需要在你的扩展程序中进行。您可以将 locationManager:didUpdateLocation: 的代码放在通用框架中,或者将该文件放在 iOS 和 WatchKit 扩展目标中,以便共享代码。

我需要使用 requestAlwaysAuthorization 而不是 requestWhenInUseAuthorization。这样做让我可以按照自己的意愿获取位置更新。