WatchKit:使用 openParentApplication:reply 获取当前位置:
WatchKit: Getting the current Location with openParentApplication:reply:
打开 Apple Watch App 后,我用 openParentApplication:reply:
唤醒 iPhone-App 以获取当前位置。正如 Apple 所说 here,您应该避免在 WatchKit 扩展中使用 Core Location。
但是如果我询问我的父应用程序,我必须在我的 info.plist
中设置 Required background modes
以获取位置更新并询问用户 requestAlwaysAuthorization
.
这真的有必要吗?当我将应用程序上传到 App Store 时,这会导致问题吗?当背景模式被激活时,他们会进行更深入的观察。
非常感谢您的回答。
是的,您需要 requestAlwaysAuthorization
才能在任何后台上下文中进行位置更新,并且 openParentApplication 是后台上下文,您的 WatchKit 扩展也是如此。当您请求核心位置的后台模式时,您必须给出您想要在后台获取核心位置的原因。您可以尝试说原因是 Apple Watch(当然措辞更好)。此外,Apple 表示你应该避免在 WatchKit 扩展中使用 Core Location,但他们并没有直接说你不能这样做(尽管我们必须等到更多应用程序获得批准才能确定)。他们给出的避免核心位置的原因是用户无法在手表应用程序中授权核心位置。在我自己的应用程序中,我在 WatchKit 扩展中使用了 Core Location。如果用户执行需要核心位置的操作,我首先检查它是否被授权。如果未授权,我不会启动核心位置,而是向用户显示一条消息,告诉他们如何在我的 iOS 应用程序中授权核心位置。
打开 Apple Watch App 后,我用 openParentApplication:reply:
唤醒 iPhone-App 以获取当前位置。正如 Apple 所说 here,您应该避免在 WatchKit 扩展中使用 Core Location。
但是如果我询问我的父应用程序,我必须在我的 info.plist
中设置 Required background modes
以获取位置更新并询问用户 requestAlwaysAuthorization
.
这真的有必要吗?当我将应用程序上传到 App Store 时,这会导致问题吗?当背景模式被激活时,他们会进行更深入的观察。
非常感谢您的回答。
是的,您需要 requestAlwaysAuthorization
才能在任何后台上下文中进行位置更新,并且 openParentApplication 是后台上下文,您的 WatchKit 扩展也是如此。当您请求核心位置的后台模式时,您必须给出您想要在后台获取核心位置的原因。您可以尝试说原因是 Apple Watch(当然措辞更好)。此外,Apple 表示你应该避免在 WatchKit 扩展中使用 Core Location,但他们并没有直接说你不能这样做(尽管我们必须等到更多应用程序获得批准才能确定)。他们给出的避免核心位置的原因是用户无法在手表应用程序中授权核心位置。在我自己的应用程序中,我在 WatchKit 扩展中使用了 Core Location。如果用户执行需要核心位置的操作,我首先检查它是否被授权。如果未授权,我不会启动核心位置,而是向用户显示一条消息,告诉他们如何在我的 iOS 应用程序中授权核心位置。