我正在为我的应用实现SiriKit
,这基本上是一个闹钟。我希望对话进行如下操作:
嘿,Siri,打开1337AlarmClock
-您要设置闹钟吗?
是
-什么时候?
上午3点
已将警报设置为上午3点
因此,我的第一个参数是我的第二个参数Boolean
所依赖的DateComponents
。我已经为此正确实现了intent handler
,并且已将success code
设置为.continueInApp
,因为我需要在成功后启动我的应用并处理参数。但是Siri从不询问我的参数,只是盲目地打开参数设置为nil的应用程序。我确实在“快捷方式”应用程序中看到了参数,并且可以在其中指定它们,但是我想通过Siri进行设置。
但是,如果我将第一个参数更改为String
而不是Boolean
,Siri开始询问问题,并在提供参数后打开我的应用程序。出了点问题吗? Boolean
的SiriIntents
类型还是在这里做错了什么?以下是我的Intents.intentdefinition
的图像。
和我一样,我在几分钟后就提出了问题。问题是,Siri仅在还没有参数值的情况下才要求输入参数。如果查看我原始帖子中的第二张图片,您会看到Relationship
部分的值设置为true
。这意味着true
将是default value
,因此Siri不会要求我。您还会注意到,不能将Boolean
类型设置为true
或false
以外的任何类型,也不能设置has。
为了解决此问题,我创建了自己的custom parameter type
,并添加了我设置为Undecided
的第三个选项default value
。 Siri现在可以正确询问-并且可以处理是/否答案。