我一直在阅读有关WatchKit连接框架的文档,试图找出是否可以将所有密集处理需求委托给我的父iOS应用程序。所有代码都已存在于父应用程序中以执行所需的处理,并且它似乎更有效地执行此操作,而不是Apple Watch应用程序复制代码并自行尝试。
我的问题是,如果手表套件应用程序发出请求时,iOS设备上的应用程序是否处于活动状态,是否可以执行此操作?它是否会将请求排队,直到下一次打开或者是否可以配置为立即处理它?我希望手表总能获得某种形式的响应或者请求超时。
更新
我发现我的特定问题与执行单独请求后从后台线程调用回复处理程序有关。当我这样做时,我没有得到从iOS设备到苹果手表的回复。这最初让我觉得iOS设备在它激活之前忽略了这些请求。
我的解决方案是执行以下操作,以便从主线程调用始终的回复处理程序。这似乎是我必须在文档中遗漏的通信中的一个关键部分(或者可能是它丢失了:o)。简而言之,简而言之,在进行了如下所示的更新后,我每次都成功得到回复。
dispatch_async(dispatch_get_main_queue(), { () -> Void in
replyHandler(myResponse) // Always call from main thread!
})
答案 0 :(得分:1)
WCSession的sendMessage
API使WatchKit扩展能够在reachable
为真的情况下在后台唤醒iOS应用。使用sendMessage时,这是一个很好的step-by-step tutorial。