2015-06-25 42 views
3

我想写一个Watchkit应用程序,可以与多个iPhone应用程序进行通信。Apple Watch:一个Watchkit应用程序可以与多个iOS应用程序通信吗?

例如,我们称这个Watchkit应用程序为“PingPong”。它所做的就是设置一个观察者,并响应请求 - 类似于ICMP ping请求。因此,当应用程序向手表发送“PING”时,PingPong Watchkit应用程序会以“PONG”响应。

如何让这个功能可以被多个应用程序访问?换句话说,我想公开这个非常简单的界面,以便不同的应用程序可以使用它。

请注意,文档状态“您必须有一个现有的iOS应用程序才能创建WatchKit应用程序WatchKit应用程序是作为Xcode项目的单独目标实现的,并且是在您的iOS应用程序包内部构建和打包的。 Xcode为您的WatchKit应用程序和WatchKit扩展配置目标,并将所需的文件添加到您的iOS项目中。这两个新目标的软件包ID都是根据iOS应用程序的软件包ID自动配置的。匹配;如果您更改iOS应用的捆绑ID,则必须相应地更新其他捆绑ID。“ https://developer.apple.com/library/ios/documentation/General/Conceptual/WatchKitProgrammingGuide/ConfiguringYourXcodeProject.html#//apple_ref/doc/uid/TP40014969-CH2-SW1

这意味着iOS扩展应用程序和watchkit应用程序之间存在一对一的关系。意义? Watchkit应用程序基本上是沙盒,这是不可能的。但问问不了什么。这就是为了什么,对吧? :P

THX,基思:)

+0

我不认为,watchkit发展的当前状态允许更多的一个iOS应用通信。 – casillas

回答

2

事实上,watchOS应用程序链接到iOS的配套​​应用。

在这两个版本中,每个watchOS应用程序都有两个目标:WatchKit应用程序 - 其中包含故事板,图标等 - 以及包含代码的WatchKit扩展。

在watchOS 1(旧WatchKit)+ iOS 8组合中,WatchKit App安装在Apple Watch上,WatchKit Extension和iOS应用都安装在用户的iPhone上。

换句话说,在watchOS 2 + iOS 9组合中,WatchKit App和WatchKit Extension都安装在用户的Apple Watch上,iOS App是安装在iPhone上的唯一代码和视图。

运行iOS应用程序只需要一个目标,因此它可以运行Apple Watch(自第一个iPhone OS以来)。

但运行watchOS应用程序需要WatchKit应用程序和WatchKit扩展。在watchOS 1(旧的WatchKit)中,因为iPhone和Apple Watch上有其他应用程序,因此正在运行的应用程序需要使用蓝牙连接它们,因此您必须将iPhone附近。在watchOS 2中,两者都在Apple Watch上,所以正在运行的应用程序不需要连接到iPhone并在附近安装iPhone。您可以将它们与watchOS 2 SDK中包含的WatchConnectivity框架(在Xcode 7中)连接起来。

因此,在watchOS 2应用程序可以独立运行,但它们不是独立的。在iPhone上安装时,它们安装在Apple Watch上,并且可以互相连接。当您创建新的watchOS应用程序时,您必须在将其提交到iTunes Connect时将其包含在您的iPhone应用程序中。

注意:这使得watchOS应用程序更快更可靠。

因此,在两个版本中,每个WatchKit应用程序都与一个扩展和一个iOS应用程序关联,因此您无法将一个watchOS应用程序链接到多个iPhone应用程序,或将iOS应用程序链接到多个WatchKit目标。(除了为watchOS 1(老WatchKit)和WatchOS 2(它们都是一个应用程序,但是在两种不同版本的手表操作系统中)制作两个目标外,例外情况如下:

总之,不能链接多个watchOS应用程序或多个iOS应用在一起。这就是事实watchOS 1 & 2和可能在将来被改变。

+0

注意:您可以使用服务器或网络进行通信,而不是苹果的方式来做到这一点(低功耗蓝牙)。所以你必须连接到第一个应用程序,并在后台第一个应用程序连接到第二个。它的作品,但我认为这不是你想要的。 –

2

你可以做到这一点。

但只有在情况下,应用是由相同的开发不论是iOS开发商。

要走的路将所有三个应用程序放在同一个应用程序组中。 这将允许所有三个应用程序来访问一个普通的储存在那里他们可以存储他们的信息被其他应用程序进行访问。

此功能用于iOS应用< - 在观看OS 1>观看应用通信和用于与今天扩展通信。

你可以找到一个教程,这里使用App组: http://www.codingexplorer.com/share-data-in-your-swift-watchkit-apps-with-app-groups/

+0

我会将其重写为“不,但有一个方法。”实际上,每个试剂盒的手表应用与一个相连且仅一个iOS应用,并且只能与一个应用程序进行通信。但是,正如您所说,您可以使用应用程序组在一个WatchKit/iPhone应用程序对和另一个应用程序对之间交换数据。 –

相关问题