我创建了一个应用程序,它正在发送数据以观看显示。当手表屏幕处于活动状态时,它可以完美地发送数据,但是当手表休眠时,发生设备未激活的错误。
我的问题是,当手表处于活动状态时,它将如何从我的 iPhone 获取通过使用 WKSession sendMessage 方法发送的数据?
我创建了一个应用程序,它正在发送数据以观看显示。当手表屏幕处于活动状态时,它可以完美地发送数据,但是当手表休眠时,发生设备未激活的错误。
我的问题是,当手表处于活动状态时,它将如何从我的 iPhone 获取通过使用 WKSession sendMessage 方法发送的数据?
如果手表屏幕关闭,iPhone 上的调用 sendMessage 将不起作用。您只能在手表屏幕打开时实时发送数据。这与您使用从手表到 iPhone 的 sendMessage 时不同(iPhone 屏幕可以关闭)。这是我从 iPhone 代码调用 sendMessage 时使用的代码块:
// Send messages to any paired apple watch.
func tryWatchSendMessage(message: [String : AnyObject]) {
if self.session != nil && self.session.paired && self.session.watchAppInstalled {
self.session.sendMessage(message, replyHandler: nil) { (error) -> Void in
// If the message failed to send, queue it up for future transfer
self.session.transferUserInfo(message)
}
}
}
然后,如果它通过 sendMessage 或 transferUserInfo 获取数据,我将 Apple Watch 应用程序设置为具有相同的处理程序。