使用 WatchConnectivity 从 Watch 与杀死的 iOS 应用进行通信
Communicate from Watch to killed iOS app using WatchConnectivity
使用 WatchOS2 和 WatchConnectivity
,是否可以 'wake up' iOS 对方使用 'interactive messaging' 向它发送消息?
我问的原因是因为我有一个 WatchOS1 应用程序正在使用 openParentApplication
到 send/receive 消息,如果不是 运行,它实际上会唤醒 iOS 应用程序],让它接收我的消息并让它发回响应。之后它再次关闭 iOS 应用程序。
我有点困惑如何在 WatchOS2 中做同样的事情。因为当我使用 'interactive messaging' 使用 WCSession
时,我发送的消息在我终止 iOS 应用程序时未送达。
我还注意到 WatchOS2 现在包含您可以使用的各种框架,例如 NSURLSession
和 EventKit
,它们将所有调用委托给 iPhone。那么也许这是推荐的方法?巧合的是,我的手表应用程序只需要来自 EventKit
的事件即可运行。所以我可以重写我应用程序的 WatchConnectivity
部分以使用 EventKit
代替。如果我的应用程序必须使用 HTTP,我可以直接使用 NSURLSession
。
谁能确认现在在 WatchOS2 中与 iPhone 通信的预期方式是使用
CoreData
/EventKit
/等原生框架?如果它是有道理的,但我确实希望有人确认这一点。
提前致谢。
WCSession
是手表与 iOS 设备之间的推荐通信方式。
对于即时通信,请使用 WCSession
实例的 sendMessage:replyHandler:errorHandler:
方法。根据 documentation:
Calling this method from your WatchKit extension while it is active
and running wakes up the corresponding iOS app in the background
and makes it reachable.
在无法连接到其他设备的情况下,例如因为它超出了范围,您可能想改用 updateApplicationContext:error:
方法。它会对数据进行排队,稍后将其传递给对方设备。
您必须确保在 iOS 应用的一部分中设置 WCSession,当 iOS 应用 运行 处于背景(UIApplicationDelegate application:didFinishLaunchingWithOptions:
将是其中之一,而任何 UIViewController 的 viewDidLoad
都不会是其中之一)
使用 WatchOS2 和 WatchConnectivity
,是否可以 'wake up' iOS 对方使用 'interactive messaging' 向它发送消息?
我问的原因是因为我有一个 WatchOS1 应用程序正在使用 openParentApplication
到 send/receive 消息,如果不是 运行,它实际上会唤醒 iOS 应用程序],让它接收我的消息并让它发回响应。之后它再次关闭 iOS 应用程序。
我有点困惑如何在 WatchOS2 中做同样的事情。因为当我使用 'interactive messaging' 使用 WCSession
时,我发送的消息在我终止 iOS 应用程序时未送达。
我还注意到 WatchOS2 现在包含您可以使用的各种框架,例如 NSURLSession
和 EventKit
,它们将所有调用委托给 iPhone。那么也许这是推荐的方法?巧合的是,我的手表应用程序只需要来自 EventKit
的事件即可运行。所以我可以重写我应用程序的 WatchConnectivity
部分以使用 EventKit
代替。如果我的应用程序必须使用 HTTP,我可以直接使用 NSURLSession
。
谁能确认现在在 WatchOS2 中与 iPhone 通信的预期方式是使用
CoreData
/EventKit
/等原生框架?如果它是有道理的,但我确实希望有人确认这一点。
提前致谢。
WCSession
是手表与 iOS 设备之间的推荐通信方式。
对于即时通信,请使用 WCSession
实例的 sendMessage:replyHandler:errorHandler:
方法。根据 documentation:
Calling this method from your WatchKit extension while it is active and running wakes up the corresponding iOS app in the background and makes it reachable.
在无法连接到其他设备的情况下,例如因为它超出了范围,您可能想改用 updateApplicationContext:error:
方法。它会对数据进行排队,稍后将其传递给对方设备。
您必须确保在 iOS 应用的一部分中设置 WCSession,当 iOS 应用 运行 处于背景(UIApplicationDelegate application:didFinishLaunchingWithOptions:
将是其中之一,而任何 UIViewController 的 viewDidLoad
都不会是其中之一)