在 SiriShortcut 中,我如何处理布尔参数?
In SiriShortcut how I can handle boolean parameters?
在 SiriShortcut 中,如果我提供布尔参数,那么 Siri 不会在对话框中询问布尔值。这是因为它采用默认值。
有什么办法可以解决这个问题吗?
最后,我得到了上述问题的解决方案。
首先,我们需要创建一个名为“Save”的枚举类型,然后添加您想要的任意名称的案例,我为 1 个索引指定“是”,为 2 个索引指定“否”。正如您在下面的屏幕截图中看到的那样。
然后转到您的意图,然后 select 枚举类型而不是布尔值。
然后 select 默认值为“未知”。
然后转到您的 IntentHandler 文件,然后粘贴以下代码。这可以使 Siri 询问值“是”或“否”选项,因为默认情况下我们 selected“未知”。
func resolveSave(for intent: SaveIntent, with completion: @escaping (SaveResolutionResult) -> Void) {
let save = intent.save
switch save {
case .no, .yes:
completion(SaveResolutionResult.success(with: save))
default:
completion(SaveResolutionResult.needsValue())
return
}
}
在 SiriShortcut 中,如果我提供布尔参数,那么 Siri 不会在对话框中询问布尔值。这是因为它采用默认值。
有什么办法可以解决这个问题吗?
最后,我得到了上述问题的解决方案。
首先,我们需要创建一个名为“Save”的枚举类型,然后添加您想要的任意名称的案例,我为 1 个索引指定“是”,为 2 个索引指定“否”。正如您在下面的屏幕截图中看到的那样。
然后转到您的意图,然后 select 枚举类型而不是布尔值。
然后 select 默认值为“未知”。
然后转到您的 IntentHandler 文件,然后粘贴以下代码。这可以使 Siri 询问值“是”或“否”选项,因为默认情况下我们 selected“未知”。
func resolveSave(for intent: SaveIntent, with completion: @escaping (SaveResolutionResult) -> Void) {
let save = intent.save
switch save {
case .no, .yes:
completion(SaveResolutionResult.success(with: save))
default:
completion(SaveResolutionResult.needsValue())
return
}
}