我们正在为我们的一个应用程序实现Sirikit
。我们可以使用SiriKit
intent INSendMessageIntent
发送消息。在“Send” Siri
命令处理时,我们需要将一些信息传递给其他应用程序。我们已经找到[self.extensionContext openURL]
从intentViewController
开放申请。正如我们观察到的那样,每次configureWithInteraction
处理每个用户命令时都会调用IntentViewController
的Siri
。由于我们只需要在“Send” Siri
命令上打开应用程序,我们无法识别当前的处理状态,即“发送”。
或者无论如何从openURL
打电话给intentHandler
?
我们正在完成IntentResponse,如下所述。
NSUserActivity *userActivity = [[NSUserActivity alloc] initWithActivityType:@“com.xxxxxx.xxx.myapp”];
INSendMessageIntentResponse *response = [[INSendMessageIntentResponse alloc] initWithCode:INSendMessageIntentResponseCodeSuccess userActivity:userActivity];
NSLog(@"response is %@",response);
completion(response);
我们期望在动作完成时调用包含应用程序委托的以下函数(ieINSendMessageIntentResponse传递给完成处理程序)
-(BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray * _Nullable))restorationHandler
几年过去了......但无论如何,也许它会帮助别人。您可以使用您创建的用户活动传递参数。
[userActivity addUserInfoEntries:]