从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)。
- @NSManaged做了什么?
- 在更新NSFetchedResultsControllers之前,Core Data是否实际保存了对磁盘的任何更改?
- 如何检测NSURLConnection的sendSynchronousRequest:returningResponse:error:是否超时或其他错误
- SKProductsRequest返回0个产品的原因是什么?
- 在单击表格行时,SecondViewController上显示错误的信息
- 如何在构build时自动重置iPhone模拟器
- 在UIWebView中embedded图像和UILable
- Objective-C中的bool,Boolean和BOOL有什么区别吗?
- swift:asynchronous任务+完成