2017-06-21 113 views

回答

0

由于watchOS2,您没有任何内置函数用于iOS和watchOS应用程序之间的沟通,而不是WatchConnectivity框架。

从您的问题提供的信息中,updateApplicationContext(_:)功能似乎是解决您的问题的最佳解决方案。您可以使用此功能发送数据字典,并且系统会在应用程序显示给用户时尝试确保数据已收到。如果在应用程序对用户可见(在前台运行)之前多次调用该函数,系统将覆盖以前的数据,因此Watch应用程序只接收最近要显示的数据。

+0

我很理解这个概念,但是你有没有可以从中入手的实际例子? – MettDich

+0

查看Apple的示例代码(例如[PotLoc](https://developer.apple.com/library/content/samplecode/PotLoc/Introduction/Intro.html#//apple_ref/doc/uid/TP40016176-Intro- DontLinkElementID_2))如果你不知道从哪里开始,但是'WCSession'文档解释了如何设置框架,然后你需要做的就是在两个应用上实现发送和接收功能。 –

+0

我试着看potloc的例子,但我什么都不明白..而是... for updateApplicationContext(_ :),在那里我要调用它? – MettDich

0

对于watchOS1,由于Watch App作为extension包含在您的Host App中。因此,您可以使用App Group在您的Host App和您的App Extension之间共享数据。

有关使用App Groups的更多信息,请参阅https://stackoverflow.com/a/44654185/5716829

+0

自从引入'watchOS2'后,Watch应用程序不仅仅是App Extensions,因此无法访问'App Group'中的数据。请参阅[本答案](https://stackoverflow.com/a/30854052/4667835)。请更新您的答案,以反映您的解决方案仅适用于'watchOS1'。 –

+1

@DávidPásztor谢谢你的信息。:) – PGDev