我对WatchConnectivity
感到困惑。
我可以从iOS应用程序向监视应用程序发送数据。但是,我只在iOS应用程序启动或激活时发送数据。
我希望手表应用程序从iOS应用程序请求数据。监视应用程序应在启动时请求该信息。
答案 0 :(得分:2)
用户信息和监视应用程序应在启动时请求这些信息。
当用户浏览他们的手表时,为什么他们必须等待数据被请求,接收,然后在应用程序中更新?
您应考虑keep your watch app up to date的其他方法,而不是设计手表应用以在用户启动应用时检索信息。
对于watchOS 2,还有其他方法可以在后台传输当前详细信息,例如updateApplicationContext
,which Ahmed mentioned。
对于watchOS 3,您还可以使用刷新任务在后台更新您的手表应用。
这些方法中的任何一种都可以确保信息已经,因此用户无法等待手表应用程序自行更新。
答案 1 :(得分:0)
我遇到了同样的问题。如果我启动iOS应用程序,数据仅发送到手表。 我通过在会话activationDidCompleteWith - 手表的方法中向iOS应用程序发送带有回复处理程序的消息来解决它。它不需要发送任何特定的消息或回复。在将消息发送到iOS应用程序之后,updateApplicationContext被触发并发送数据以供观察。
编辑:经过一些研究后,当手表的第一个数据“到达”时,似乎没有激活iOS端的会话,这就是它无法回答的原因。
答案 2 :(得分:-1)
您可以使用sendMessage
方法link to documentation,它是WCSession class的一部分。该方法采用了一个回复处理程序:
用于接收来自对方的响应的回复处理程序。如果您不想收到回复,请指定nil。
因此,您可以通过发送带有回复处理程序的消息来有效地通知iOS应用程序,iOS应用程序使用该回复处理程序将数据发回。