我正在为我的应用程序实现SiriKit,它基本上是一个闹钟。我想让谈话像这样:
嘿,Siri,打开1337 1337AlarmClock
-Would你喜欢设置闹钟吗?
是
-What时间?
上午3点
-Alarm已设置为凌晨3点。
因此,我的第一个参数是第二个参数DateComponents所依赖的DateComponents。为此,我正确地实现了intent handler,并将success code设置为.continueInApp,因为我需要在成功后启动应用程序并处理参数。但是Siri从来不要求我的参数,只是盲目地打开应用程序,参数设置为零。我确实在快捷键应用程序中看到了参数,并且可以在那里指定参数,但我想通过Siri来实现。
但是,如果我将第一个参数改为String Boolean**,,而不是Boolean**,Siri,那么当我提供了这些参数之后,就会打开我的应用程序。**,SiriIntents的Boolean类型有什么问题吗?或者我在这里做错了什么?下面是我的Intents.intentdefinition的图片。


发布于 2020-02-13 11:45:17
和往常一样,我发完问题几分钟后就想出来了。问题是,Siri只有在没有参数值的情况下才会要求参数。如果您查看我最初文章中的第二个图像,您可以看到Relationship部分的值设置为true。这意味着true将是default value,因此Siri不会向我要求它。您还会注意到,不能将Boolean类型设置为true或false以外的任何类型,而且也有要设置的。
为了解决这个问题,我创建了自己的custom parameter type,并添加了第三个选项Undecided,它被设置为default value。Siri现在正确地问了--并且可以处理是/否的回答。
https://stackoverflow.com/questions/60073325
复制相似问题