我正在探索 WatchKit SDK。
当我有一个 WatchKit 应用程序时,是否可以在 WatchKit 应用程序上从 iPhone 应用程序设置值(例如文本、设置)?我可以从 iPhone 应用程序调用 WatchKit 应用程序扩展中的函数吗?
如果有人设法做到这一点,他/她可以发布一个例子吗?谢谢!
我正在探索 WatchKit SDK。
当我有一个 WatchKit 应用程序时,是否可以在 WatchKit 应用程序上从 iPhone 应用程序设置值(例如文本、设置)?我可以从 iPhone 应用程序调用 WatchKit 应用程序扩展中的函数吗?
如果有人设法做到这一点,他/她可以发布一个例子吗?谢谢!
您可以使用 App Group 和 sharedDefaults 在 WatchApp/Extension 和手机上的 App 之间共享数据。查看示例: WatchKit SDK 未从 NSUserDefaults 检索数据
研究 iOS8 Extension/App Groups/sharedDefaults 和 watchkit 扩展会更有意义。
此示例从 Shinobi 图表中获取 UIImage,将其保存为默认图像。然后扩展程序通过默认值获取图像并在手表上显示
https://github.com/ChrisGrant/ChartWatch
这个使用多点连接来与手机通话。
https://github.com/jsclayton/swatches
但这使用蓝牙,我认为 Watch OS 也使用蓝牙与手机通信,所以不确定它们是否都被允许。
我们还没有要测试的设备,所以 /swatches 应用程序只是在同一台 mac 上观看模拟器与 iphone 模拟器交谈。
如果您曾经做过低级 AV 编程,您就会知道该应用程序可能在模拟器上运行但在设备上失败,因为模拟器可以欺骗使用 Mac OSX 媒体层。蓝牙可能是一样的。
其他样品
有几种解决方案:CoreData、NSKeyedUnarchiver和NSUserDefaults。在共享通用数据资源(数据库、文件或用户默认设置)的通用背景下,这将在两个目标项目属性上启用应用组功能。
在下面的帖子中解释了如何使用默认设置进行操作,您也可以下载演示项目。
有了 watchOS2,Apple 现在支持 Watch Connectivity Framework 将信息从手表扩展传递到应用程序,反之亦然。
取自 Apple 的文档
与您的伴侣 iOS 应用程序通信
Watch Connectivity 框架允许您在 WatchKit 扩展程序和配套的 iOS 应用程序之间创建双向通信通道。使用此通道来协调两个流程之间的活动。例如,您可以使用此框架将更新的信息从您的 iOS 应用程序推送到您的 WatchKit 扩展程序。该框架提供了在后台或两个应用程序都处于活动状态时传输数据的选项,并替换了 WKInterfaceController 类的现有 openParentApplication:reply: 方法。
有关 Watch Connectivity 框架的类的更多信息,请参阅Watch Connectivity Framework Reference。
你可以看到这个库 https://github.com/mutualmobile/MMWormhole
它在 iOS 应用程序和扩展程序之间进行消息传递。
看起来与 Brain.clear 的链接没有指向 ShinobiChart 示例的正确目的地