通过Xcode 10 beta的实验,我创建了一个自定义的Siri Intent,它运行良好。我的意图扩展成功接收了意图并依次处理它们。
不需要对意图的参数进行任何形式的验证,一旦触发,它将从网络请求数据。我可以在(void)handle...
中做到这一点。
我在自动生成的Intent类中注意到了可能的响应代码列表。
typedef NS_ENUM(NSInteger, SMSCheckTeamIntentResponseCode) {
SMSCheckTeamIntentResponseCodeUnspecified = 0,
SMSCheckTeamIntentResponseCodeReady,
SMSCheckTeamIntentResponseCodeContinueInApp,
SMSCheckTeamIntentResponseCodeInProgress,
SMSCheckTeamIntentResponseCodeSuccess,
SMSCheckTeamIntentResponseCodeFailure,
SMSCheckTeamIntentResponseCodeFailureRequiringAppLaunch,
SMSCheckTeamIntentResponseCodeSuccessPlayingNow = 100
}
失败,成功和成功(正在播放)响应在我的Intents文件中定义。其他的(例如,就绪和进行中的)还没有,但是我仍然想使用(void)confirm...
方法告诉Siri我的扩展名是“进行中”。
SMSCheckTeamIntentResponse * const response = [[SMSCheckTeamIntentResponse alloc] initWithCode:SMSCheckTeamIntentResponseCodeInProgress userActivity:nil];
completion(response);
此刻,当我在Confirm方法中调用此函数时,Siri表示我的应用出现了问题,扩展程序退出了。
有人知道如何成功使用这些响应代码吗?