在 WatchOS 和 Today Extension 小部件之间传递数据
Communicate data between WatchOS & Today Extension widget
Watch OS > 2 的标准设置。
WCSessionDelegate
用于协调主应用程序和 Watch 之间的数据。
一个应用程序组 "group.***********.TodayExtensionWidget"
用于通过 UserDefaults(suiteName: "group.***********.TodayExtensionWidget")
协调主应用程序与其 Today Extension 小部件之间的数据
当我对手表进行更改时,它会将更改与主应用程序进行通信。然后主应用程序(一旦启动)将其传达给 Today Extension。
我想做的是将手表应用程序中的更改传达给 Today 扩展程序,而无需先启动主应用程序。
在手表应用程序和 Today Extension 小部件之间进行通信是否有最佳实践?
目前无法使用任何内置框架实现此目的。由于 watchOS2
的引入,WatchKit
应用程序被认为是独立的应用程序,而不仅仅是 iOS
应用程序的扩展,因此您不能使用 AppGroups
在应用程序之间共享数据两个,尤其是不能使用它在 WatchKit
应用程序和 iOS
扩展程序之间共享数据。
如您所见,WatchConnectivity
不能用在 Today extension
中,所以这也不在考虑范围之内。
您唯一的选择是次优选择,因为您需要将数据从 watchOS
应用程序上传到服务器并在 iOS Today extension
中下载。这当然会产生不必要的数据使用,但使用 Apple 提供的当前框架,您无法离线共享数据。
但是,如果您等到 watchOS4
发布(或试用测试版),您也许可以利用 CoreBluetooth
框架,该框架可用于 [=11] =] 在 watchOS4
中使用 BLE
在 WatchKit
应用程序和 iOS
扩展程序之间离线通信。我不是 100% 确定 CoreBluetooth
是否可以在 iOS Extensions
中使用,但是如果你可以使用 watchOS4 beta
.
,你应该试一试
Watch OS > 2 的标准设置。
WCSessionDelegate
用于协调主应用程序和 Watch 之间的数据。
一个应用程序组 "group.***********.TodayExtensionWidget"
用于通过 UserDefaults(suiteName: "group.***********.TodayExtensionWidget")
当我对手表进行更改时,它会将更改与主应用程序进行通信。然后主应用程序(一旦启动)将其传达给 Today Extension。 我想做的是将手表应用程序中的更改传达给 Today 扩展程序,而无需先启动主应用程序。
在手表应用程序和 Today Extension 小部件之间进行通信是否有最佳实践?
目前无法使用任何内置框架实现此目的。由于 watchOS2
的引入,WatchKit
应用程序被认为是独立的应用程序,而不仅仅是 iOS
应用程序的扩展,因此您不能使用 AppGroups
在应用程序之间共享数据两个,尤其是不能使用它在 WatchKit
应用程序和 iOS
扩展程序之间共享数据。
如您所见,WatchConnectivity
不能用在 Today extension
中,所以这也不在考虑范围之内。
您唯一的选择是次优选择,因为您需要将数据从 watchOS
应用程序上传到服务器并在 iOS Today extension
中下载。这当然会产生不必要的数据使用,但使用 Apple 提供的当前框架,您无法离线共享数据。
但是,如果您等到 watchOS4
发布(或试用测试版),您也许可以利用 CoreBluetooth
框架,该框架可用于 [=11] =] 在 watchOS4
中使用 BLE
在 WatchKit
应用程序和 iOS
扩展程序之间离线通信。我不是 100% 确定 CoreBluetooth
是否可以在 iOS Extensions
中使用,但是如果你可以使用 watchOS4 beta
.