如何在Widget和WatchOS2之间进行通信?

时间:2016-10-06 23:40:42

标签: ios widget watchkit communication watch-os-2

我有一个应用支持小部件和WatchOS,它有一个数据存储(核心数据)。 在过去,我使用app分组在主应用程序,小部件和Watch应用程序之间进行通信。

但用户升级到WatchOS 3后手表应用程序非常慢。

现在我已将手表部分重写为原生。它通过主应用程序和WatchOS之间的WatchConnectivity库进行通信,运行顺畅。

但我找不到在widget和WatchOS之间进行通信的方法。例如。如果由于用户在窗口小部件中的操作而导致某些数据发生变化,我该如何更新WatchOS中的数据?

我已尝试过updateApplicationContext,但如果请求来自小部件,则报告“WCSession尚未激活”或未安装watchApp。

需要帮助!谢谢!

1 个答案:

答案 0 :(得分:1)

我非常确定您无法直接通过今日小部件与手表应用进行对话。 Apple的架构意味着手表应用程序只能与相关的iOS手机应用程序通信,而在WatchOS2 / 3中,手表扩展代码现在可以在手表本身而不是手机上运行。

我确定你已经考虑过这些,但我要做的是以下部分/全部内容:

  1. 当小部件更改数据时,写一些内容到核心数据或用户设置以说明已经进行了更改(如果这不是很明显)
  2. 获取手机应用程序以进行背景推送到手表 - 可以在后台刷新,也可以设置通知以定期唤醒手机应用程序
  3. 获取手表应用程序,以便在激活时通过手机应用程序提取最新数据
  4. 如果您找到了一个很好的解决方案,请告诉我们。