如何build立Apple Watch Extension / App和iOS App之间的沟通渠道
我正在探索WatchKit SDK。
当我有WatchKit应用程序时,是否可以在WatchKit应用程序的iPhone应用程序中设置值(例如文本,设置)? 我可以从iPhone应用程序的WatchKit应用程序扩展中调用函数吗?
如果有人设法做到这一点,他/她可以发表一个例子吗? 谢谢!
您可以使用App Group和sharedDefaults在WatchApp / Extension和手机上的App之间共享数据。 请参阅示例: WatchKit SDK不从NSUserDefaults中检索数据
研究iOS8 Extension / App Groups / sharedDefaults和watchkit extension会更有意义。
该示例从Shinobi图表中获取UIImage,将其保存为图像的默认值。 然后扩展程序通过默认select图像并将其显示在手表上
https://github.com/ChrisGrant/ChartWatch
这一个使用multipeer连接有手表通话。
https://github.com/jsclayton/swatches
但这使用蓝牙,我认为手表操作系统也使用蓝牙与手机通信,所以不知道他们是否都将被允许。
我们还没有设备可以testing,所以/ swatches应用程序只是看simuator与iPhone模拟器在同一个mac上交谈。
如果你曾经做过低级的AV编程,你知道这个应用程序可能在模拟器上运行,但在设备上失败,因为模拟器可能会欺骗使用Mac OSX媒体层。 蓝牙可能是一样的。
其他样品
有几个解决scheme: CoreData , NSKeyedUnarchiver和NSUserDefaults 。 通过共享公共数据资源(数据库,文件或用户默认设置)的共同背景,可以在两个目标项目属性上启用应用程序组function 。
在下面的文章中解释了如何使用默认设置来完成它,你也可以下载演示项目。
有了watchOS2,Apple支持Watch Connectivity Framework将手表扩展信息传递给应用程序,反之亦然。
从苹果的文档中获取
与您的伴侣iOS应用程序通信
Watch Connectivity框架允许您在WatchKit扩展和您的配套iOS应用程序之间创build双向通信通道。 使用此通道来协调两个进程之间的活动。 例如,您可以使用此框架将更新的信息从iOS应用程序推送到您的WatchKit扩展。 该框架提供了在后台传输数据或两个应用程序都处于活动状态的选项,并replace了WKInterfaceController类的现有openParentApplication:reply:方法。
有关Watch Connectivity框架的更多信息,请参阅Watch Connectivity Framework Reference 。
从苹果开发者图书馆采取
你可以看到这个库https://github.com/mutualmobile/MMWormhole
它在iOS应用程序和扩展之间传递消息。
看起来像与brain.clear的链接并不指向ShinobiChart示例的正确目的地
- Xcode Watchkit:所有有效的configuration文件都不允许指定的权利:beta-reports-active,com.apple.security.application-groups
- 实时读取Apple Watch syslog(NSLog())
- 如何使用iPhone在iPhone和Apple Watch之间共享数据?
- parsing和watchkit扩展
- WatchKit应用程序的部署目标必须等于iOS 8.2(8.3)?
- watchOS 2:背景中的触觉反馈
- Apple Watch:从基于页面的导航中呈现模态屏幕后,状态栏不可见
- 在WatchKit应用程序中openParentApplication的行为不一致
- 如何获得Apple Watch硬件标识符?