使用 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
。这样做让我可以按照自己的意愿获取位置更新。
我正在使用 openParentApplication:
和 handleWatchKitExtensionRequest:
请求并发送一个 NSNumber 对象,该对象包含来自核心位置 locationManager:didUpdateLocation:
方法的值。我这样做是为了让我的 watchkit 应用程序不必担心使用 Core Location,并且我可以使用我已经在我的 iOS 应用程序中编写的所有逻辑。我的 watchkit 扩展的回调似乎工作正常,我在 "reply:" 回调中得到了响应。
但是,直到我在模拟器中手动点击我的应用程序图标,我才从 Core Location 获得任何真实数据。然后我开始从 Core Location 获取真实数据并且我的手表套件界面更新了正确的数据。
这只是模拟器的限制吗?
不,如果你想在你的手表应用程序中使用 Core Location,你需要在你的扩展程序中进行。您可以将 locationManager:didUpdateLocation:
的代码放在通用框架中,或者将该文件放在 iOS 和 WatchKit 扩展目标中,以便共享代码。
我需要使用 requestAlwaysAuthorization
而不是 requestWhenInUseAuthorization
。这样做让我可以按照自己的意愿获取位置更新。