如何以编程方式从 iOS 应用程序打开 Apple Watch 配套应用程序

Posted

技术标签:

【中文标题】如何以编程方式从 iOS 应用程序打开 Apple Watch 配套应用程序【英文标题】:How to programmatically open Apple Watch companion app from iOS app 【发布时间】:2016-01-28 07:31:48 【问题描述】:

我想给用户一个提示,我的 ios 应用支持 Apple Watch。

所以我想从我的 iOS 应用程序中链接/打开 Apple Watch 配套应用程序,非常类似于使用 ([[UIApplication sharedApplication] openURL: [NSURL URLWithString:UIApplicationOpenSettingsURLString]];) 打开设置应用程序

这将使用户能够直接导航到 Watch 配套应用来为手表设置我的应用。

我找不到任何可以在一般情况下打开配套应用程序或特定于配套应用程序部分的 URL。

如果不支持直接链接,我也对此用例的替代方法感兴趣。

提前致谢!

编辑: 我检查了模拟器中的 WatchKitSettings Info.plist 文件,看它是否注册了任何 URL 架构,但它没有。

【问题讨论】:

【参考方案1】:

我猜不可能从 iOS 以编程方式启动手表伴侣应用。相反的方式是可能的:在收到来自手表的消息后在后台启动 iOS 应用程序。请参阅 WWDC 演讲Introducing Watch Connectivity。

您可以检查WCSession.defaultSession().watchAppInstalled 并要求用户启动应用程序,如果它是真的。

【讨论】:

感谢您的评价。我很好奇是否还有其他选择,或者苹果将来是否会改变这一点。我的应用已经在 watchOS 2 中使用了 watchkit。由于该应用已经存在并且只是扩展了手表功能,因此指导用户使用手表应用会非常好... 这在 watchOS 3 中是否发生了变化? Nike Run Club 应用程序就是这样做的。【参考方案2】:

以前,无法从 iPhone 应用程序启动 WatchKit 应用程序,但可以使用 openParentApplication 方法启动 iPhone 应用程序(只能在后台)。

但是,从 WatchOS 2 开始,现在任何一个应用程序都无法启动另一个应用程序。取而代之的是,当将来启动其他应用程序时,可以使用新方法来排队等待更改。

您的用例的一个部分解决方案可能是显示一个本地通知,点击该通知可以打开手表应用。这种方法的主要缺陷是我不相信有办法将此通知仅限于 Watch,因此它也会出现在 iPhone 上,如果点击它会将 iPhone 应用程序带到前台。如果像这样实现会很混乱,因此我认为不值得,即使它可以通过应用商店的审查。

【讨论】:

嗨@Duncan,你有什么新的API可以用来从iOS主机应用程序启动手表伴侣应用程序吗?

以上是关于如何以编程方式从 iOS 应用程序打开 Apple Watch 配套应用程序的主要内容,如果未能解决你的问题,请参考以下文章

如何以编程方式从 iOS 设备获取自己的手机号码? [复制]

如何以编程方式检查和打开现有应用程序 - Swift 4

如何在 iOS 上以编程方式将视频上传到 Vine?

如何在 iOS 上以编程方式将视频上传到 Vine?

以编程方式打开 Apple Health

iOS - Apple TV - 以编程方式检测 Apple TV 上的节目