在WatchOS和&amp ;;之间传递数据。今天扩展小部件

时间:2017-08-18 09:13:05

标签: swift watchkit today-extension

Watch OS的标准设置> 2。 WCSessionDelegate用于协调主应用程序和Watch之间的数据。

应用程序组"group.***********.TodayExtensionWidget"用于通过UserDefaults(suiteName: "group.***********.TodayExtensionWidget")协调主应用程序与其今日扩展程序小部件之间的数据

当我从手表进行更改时,它会将更改与主应用程序进行通信。然后主应用程序(一旦启动)将此信息传达给Today Extension。 我想要做的是将手表应用程序中的更改传递给Today扩展,而无需首先启动主应用程序。

在观看应用和今日推广小部件之间进行通信是否有最佳做法?

1 个答案:

答案 0 :(得分:1)

目前无法使用任何内置框架实现此目的。自引入watchOS2以来,WatchKit个应用被视为独立应用,而不仅仅是iOS应用的扩展,因此您无法使用AppGroups来共享数据两个,尤其是不能用它在WatchKit应用和iOS扩展程序之间共享数据。

正如您所经历的那样,WatchConnectivity无法在Today extension中使用,所以这也不合适。

您唯一的选择是次优,因为您需要通过watchOS应用将数据上传到服务器并将其下载到iOS Today extension。这当然会产生不必要的数据使用,但是使用Apple提供的当前框架,您无法离线共享数据。

但是,如果您等到watchOS4发布(或试用测试版),您可以利用CoreBluetooth框架,该框架可用于WatchKitwatchOS4中使用WatchKitiOS应用和BLE扩展程序之间进行脱机通信。我不是100%确定CoreBluetooth是否可以在iOS Extensions中使用,但是如果您可以使用watchOS4 beta,则应该尝试一下。