首页 > 解决方案 > 在 SiriShortcut 中,我如何处理布尔参数?

问题描述

在 SiriShortcut 中,如果我给出布尔参数,那么 Siri 不会在对话框中询问布尔值。这是因为它采用默认值。

有没有办法克服这个问题?

在此处输入图像描述

标签: iosswiftiphonesirikitsirishortcuts

解决方案


最后,我得到了上述问题的解决方案。

首先,我们需要创建一个名为“Save”的 Enum 类型,然后添加任何您想要的名称的案例,我为 1 个索引提供“是”,为 2 个索引提供“否”。正如您在下面的屏幕截图中看到的那样。

在此处输入图像描述

然后转到您的意图,然后选择枚举类型而不是布尔值。

在此处输入图像描述

然后选择默认值作为“未知”。

在此处输入图像描述

然后转到您的 IntentHandler 文件,然后粘贴以下代码。这可以使 Siri 询问值“是”或“否”选项,因为默认情况下我们选择了“未知”。

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
  }
}

推荐阅读