Objective c WatchConnectivity框架:WKSession用于维护我请求监视的队列
我已经创建了一个应用程序,它正在发送数据以监视显示。 当手表屏幕处于活动状态时,它会完美地发送数据,但当手表处于休眠状态时,则会发生一个错误,即设备未处于活动状态Objective c WatchConnectivity框架:WKSession用于维护我请求监视的队列,objective-c,ios9,apple-watch,watchos-2,watchconnectivity,Objective C,Ios9,Apple Watch,Watchos 2,Watchconnectivity,我已经创建了一个应用程序,它正在发送数据以监视显示。 当手表屏幕处于活动状态时,它会完美地发送数据,但当手表处于休眠状态时,则会发生一个错误,即设备未处于活动状态 我的问题是,当手表处于活动状态时,它将如何从我的iPhone获取通过WKSession sendMessage方法发送的数据?如果手表屏幕关闭,iPhone上的呼叫sendMessage将无法工作。您只能在手表屏幕打开时实时发送数据。这与将sendMessage从手表发送到iPhone时不同(iPhone屏幕可以关闭)。这是我从iPh
我的问题是,当手表处于活动状态时,它将如何从我的iPhone获取通过WKSession sendMessage方法发送的数据?如果手表屏幕关闭,iPhone上的呼叫sendMessage将无法工作。您只能在手表屏幕打开时实时发送数据。这与将sendMessage从手表发送到iPhone时不同(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)
}
}
}
然后,如果apple watch应用程序通过sendMessage或transferUserInfo获取数据,我会将其设置为具有相同的处理程序。对不起,你能重新表述你的问题吗?我不明白你在问什么。我已经做了这些事情,但是,如果手表屏幕关闭,我从iPhone上发送了一些要观看的内容,那么当手表屏幕打开时,我发送的数据将丢失或排队等待处理。如果屏幕关闭,iPhone调用sendMessage,则呼叫将失败,数据将不会发送到apple Watch。在本例中,上面的代码块通过使用相同的数据调用transferUserInfo来处理此问题。这将在监视屏幕重新打开时对要处理的数据进行排队。目前,您需要同时实现session:didReceiveMessage(用于sendMessage成功时)和session:didReceiveUserInfo(用于sendMessage失败和transferUserInfo成功时)。