Ios WKInterfaceController.openParentApplication在实际设备上延迟?

Ios WKInterfaceController.openParentApplication在实际设备上延迟?,ios,iphone,ios8,watchkit,apple-watch,Ios,Iphone,Ios8,Watchkit,Apple Watch,我已经跟踪这个bug好几天了,终于意识到问题在于WKInterfaceController.openParentApplication实际存在延迟。我指的不是Apple Watch中的回调,而是iPhone中的AppDelegate事件 以下是我在Apple Watch中所做的: override func awakeWithContext(context: AnyObject?) { var userInfo = [ "test": 123 ] WKInterfaceCo

我已经跟踪这个bug好几天了,终于意识到问题在于
WKInterfaceController.openParentApplication
实际存在延迟。我指的不是Apple Watch中的回调,而是iPhone中的
AppDelegate
事件

以下是我在Apple Watch中所做的:

override func awakeWithContext(context: AnyObject?) {
  var userInfo = [
    "test": 123
  ]

  WKInterfaceController.openParentApplication(userInfo, reply: nil)
}
然后在iPhone中,我在
AppDelegate
中这样做:

func application(application: UIApplication, handleWatchKitExtensionRequest userInfo: [NSObject : AnyObject]?, reply: (([NSObject : AnyObject]!) -> Void)!) {
  let test = userInfo["test"]
  // Do something
}
问题是,当我调用
WKInterfaceController.openParentApplication
时,在iPhone中触发
handleWatchKitExtensionRequest
事件之前会有2到3秒的延迟。如果用户在手表上快速执行某个动作,然后立即放下手臂,则会出现问题。我不能假设用户会举起手臂3秒钟,直到手表发出命令

这里有一个陷阱:如果用户唤醒手表,命令仍然不会发送到iPhone。。直到用户打开发送
WKInterfaceController.openParentApplication
的原始应用程序。如果没有这个捕获,我不认为这是一个问题,命令应该排队直到手表被唤醒,而不是被唤醒并重新打开应用程序


有什么办法可以解决这个问题吗?我计划将此记录为一个bug,但想看看是否有人对此有任何想法或经验?

您觉得有延迟。您是否验证/测量了日志记录的延迟?需要更多信息/代码来真正提供帮助。也许您应该实现reply块,以便查看是否返回了错误。发送的命令实际上发生在iPhone上,更新会刷新屏幕,因此看起来没有错误。你必须跟我说一点,因为我无法调试这些问题,因为这只发生在真实设备上,而不是模拟器上,这使得跟踪变得更加困难。除非我遗漏了什么,否则无法让手表模拟器睡眠或回家。您是否尝试过在后台任务中运行handleWatchKitExtensionRequest代码?