使用WatchOS2和WatchConnectivity
,是否可以唤醒' iOS对应方使用交互式消息传递'
我问的原因是因为我有一个使用openParentApplication
发送/接收消息的WatchOS1应用程序,如果它没有运行,实际上会唤醒iOS应用程序,让它接收我的消息并让它发回一个回应。之后,它再次关闭iOS应用程序。
我对如何在WatchOS2中做同样的事情感到有点困惑。因为当我使用“交互式消息传递”时使用WCSession
我杀死iOS应用时,不会发送我发送的消息。
我还注意到WatchOS2现在包含了您可以使用的各种框架,例如NSURLSession
和EventKit
,它们将所有调用委托给iPhone。那么也许这是推荐的方式?我的手表应用程序巧合地只需要EventKit
的事件来操作。所以我可以重写我的应用的WatchConnectivity
部分来改为使用EventKit
。如果我的应用必须使用HTTP,我可以直接使用NSURLSession
。
任何人都可以确认使用WatchOS2中与iPhone通信的预期方式
像CoreData
/ EventKit
/ etc这样的原生框架?如果它是有道理的,但我确实希望有人证实这一点。
提前致谢。
答案 0 :(得分:4)
equals
是手表和iOS设备之间通信的推荐方式。
对于即时通信,请使用WCSession
实例的sendMessage:replyHandler:errorHandler:
方法。根据{{3}}:
在WatchKit扩展名处于活动状态时调用此方法 并在后台运行唤醒相应的iOS应用程序 并使其可以访问。
如果无法联系到其他设备,例如因为它超出了范围,您可能需要使用WCSession
方法。它会将数据排队并稍后将其传送到对应设备。
答案 1 :(得分:3)
你必须确保在iOS应用程序在后台运行时运行的iOS应用程序的一部分中设置WCSession(UIApplicationDelegate application:didFinishLaunchingWithOptions:
将是其中一个点,而任何UIViewController的viewDidLoad
1}}不会是其中之一)