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