watchOS2 和 iOS8 连通性 - Swift
watchOS2 and iOS8 connectivity - Swift
对于 watchOS1 有几种有限但有效的方法可用于在手表和 phone 之间共享数据 - 例如 openParentApp
、AppGroups
和 NSUserDefaults
.
随着 watchOS2 和 WatchConnectivity 框架的发布 - openParentApp
方法已弃用,AppGroups
和NSUserDefaults
仅限于只读功能。需要注意的是,只有 iOS9 设备支持 WatchConnectivity。
但不知何故,我在 AppStore 上看到应用程序声称针对 watchOS2 进行了优化,而
将 iOS8 作为部署目标。
我错过了什么吗?
有没有其他方法可以充分共享数据?
有些用户可能没有 Apple Watch,他们可能会使用 iOS8。
为了支持它们,您可以为每个构建目标设置每个部署目标版本。
喜欢项目中的这些示例目标:
- iOS 应用程序(目标:iOS 8.x,您必须将
WatchConnectivity
框架设置为可选)
- watchOS 2 应用程序(目标:iOS 9.x & watchOS 2)-> iOS8 用户无法安装手表应用程序。
- watchOS 2 应用扩展(目标:iOS 9.x & watchOS 2)
在 iOS 应用程序代码中,您可以使用以下代码检查 WatchConnectivity
可用性:
NSClassFromString(@"WCSession") != nil;
据我所知,你也可以同时提供watchOS 1 App,但我没有测试。不能用模拟器测试,我也没有其他有 watchOS1 的 apple watch。
对于 watchOS1 有几种有限但有效的方法可用于在手表和 phone 之间共享数据 - 例如 openParentApp
、AppGroups
和 NSUserDefaults
.
随着 watchOS2 和 WatchConnectivity 框架的发布 - openParentApp
方法已弃用,AppGroups
和NSUserDefaults
仅限于只读功能。需要注意的是,只有 iOS9 设备支持 WatchConnectivity。
但不知何故,我在 AppStore 上看到应用程序声称针对 watchOS2 进行了优化,而 将 iOS8 作为部署目标。
我错过了什么吗? 有没有其他方法可以充分共享数据?
有些用户可能没有 Apple Watch,他们可能会使用 iOS8。 为了支持它们,您可以为每个构建目标设置每个部署目标版本。
喜欢项目中的这些示例目标:
- iOS 应用程序(目标:iOS 8.x,您必须将
WatchConnectivity
框架设置为可选) - watchOS 2 应用程序(目标:iOS 9.x & watchOS 2)-> iOS8 用户无法安装手表应用程序。
- watchOS 2 应用扩展(目标:iOS 9.x & watchOS 2)
在 iOS 应用程序代码中,您可以使用以下代码检查 WatchConnectivity
可用性:
NSClassFromString(@"WCSession") != nil;
据我所知,你也可以同时提供watchOS 1 App,但我没有测试。不能用模拟器测试,我也没有其他有 watchOS1 的 apple watch。