iOS WatchKit handleWatchKitExtensionRequest在下载应用程序至watch后首次启动应用程序之前不会触发

iOS WatchKit handleWatchKitExtensionRequest在下载应用程序至watch后首次启动应用程序之前不会触发,ios,objective-c,iphone,watchkit,apple-watch,Ios,Objective C,Iphone,Watchkit,Apple Watch,平台和版本:Xcode 6.3上的iOS 8.3 问题描述 只有在手机和手表上安装了新版本后,该应用程序才会对苹果手表按钮的按下做出反应。我们想了解为什么手表在首次启动手机应用程序之前无法与手机正常通信,而手机应用程序是在两款手表都重新安装后启动的。否则一切看起来都很好。在背景、前景、终止手机上的应用程序、重新启动手机后,一切正常……你可以说。这是第一次 复制步骤 在iPhone上安装新版本 切换到iPhone上的apple watch应用程序,为手表安装手表扩展应用程序 安装watch应用程序

平台和版本:Xcode 6.3上的iOS 8.3

问题描述

只有在手机和手表上安装了新版本后,该应用程序才会对苹果手表按钮的按下做出反应。我们想了解为什么手表在首次启动手机应用程序之前无法与手机正常通信,而手机应用程序是在两款手表都重新安装后启动的。否则一切看起来都很好。在背景、前景、终止手机上的应用程序、重新启动手机后,一切正常……你可以说。这是第一次

复制步骤

  • 在iPhone上安装新版本
  • 切换到iPhone上的apple watch应用程序,为手表安装手表扩展应用程序
  • 安装watch应用程序(不要切换回iPhone上的父应用程序)
  • 按下激发openParentApplication的按钮:回复:(可以多次按下,对父级没有影响)
  • 打开iPhone上的父应用程序
  • 执行此操作后,将大量消息从手表发送到父应用程序上的应用程序委托中的handleWatchKitExtensionRequest:reply:(步骤4中的所有按钮按下)
  • 从那时起,一切顺利

  • 这通常是我遇到openParentApplication问题时的第一个问题。您是否在后台任务中执行handleWatchKitRequest中的所有工作?我可以想象它在主线程上运行,因为我没有指定要运行的线程以及每次执行的所有视觉工作(如果不是在主线程上运行,通常不会)。只有在特定的情况下,事情才不会像预期的那样运行。我开始怀疑这是否是苹果的错误。因为我注意到苹果手表上的其他几个应用程序似乎也遇到了同样的问题,那就是在下载手表应用程序后至少打开一次主应用程序之前,手表应用程序不会处理任何事情。也许吧。我从来没有遇到过问题,不管它值多少钱。您不依赖任何仅在运行iOS应用程序后设置的数据或值吗?不。。。并重申从手表到父应用程序的调用的实际时间戳,清楚地表明Apple stock方法“handleWatchKitExtensionRequest:reply:”在父应用程序打开之前不会被调用。我已经对此进行了多次测试,并在最初发送watch消息后打开父应用程序之前等待了相当长的时间。