从SiriKit的INExtension启动应用程序

我想用SiriKit开始锻炼。 开始锻炼需要从应用程序扩展中打开主应用程序。

Apple为INStartWorkoutIntentHandling处理程序提供的样板INStartWorkoutIntentHandling

 func handle(startWorkout startWorkoutIntent: INStartWorkoutIntent, completion: (INStartWorkoutIntentResponse) -> Void) { let userActivity = NSUserActivity(activityType: NSStringFromClass(INStartWorkoutIntent)) let response = INStartWorkoutIntentResponse(code: .success, userActivity: userActivity) completion(response) } 

我怎样才能从这里打开我自己的应用程序? 就像myapp://workout?action=start&name=pushups 这个答案似乎并不相关,因为我没有这个扩展types的extensionContext属性的UIViewController

最后一个相关位:对于其他操作(暂停,结束)我宁愿不打开主应用程序,而只是暂停在主应用程序中运行的锻炼。 我可以使用类似的自定义url暂停它,但这会打开应用程序,这是一个额外的不必要的步骤。 任何好的方式来告诉主要的应用程序从INExtension采取特定的行动,而无需打开应用程序?

对于后人:原来这是Xcode 8 beta之间的这个function的一个阶段,它已经在Xcode 8 beta 3中解决了。他们在这个版本中添加了.continueInApp代码到INStartWorkoutIntentResponseCode ,但是在Xcode 8 beta中没有2.这个状态码允许直接传递NSUserActivity(不需要使用URLscheme)。