如何创建一个接受用户传递输入的Siri意图

9
我创建了一个带有参数的自定义Intent,方法如下:

enter image description here

我已经捐赠了它:
let intent = PlayIntent()
intent.color = color
let interaction = INInteraction(intent: intent, response: nil)
interaction.donate()

它正确显示:

enter image description here

然而,我希望有一个接受用户输入的Intent。例如,Messages.app:

enter image description here

如何配置自定义 Intent 以处理输入?

你有考虑过创建“Intents UI Extension”以及“Intents Extension”吗?也许这个链接对你有帮助:https://medium.com/@pietropizzi/a-beginners-guide-to-developing-custom-intent-siri-shortcuts-for-ios-12-a3627b7011af。 - Anton
1个回答

2
据我所知,这个功能不适用于第三方快捷方式。我的意思是,那些不是由Siri Shortcuts(之前是Workflow)应用程序团队定义的快捷方式。所有第三方快捷方式在“Shortcuts”应用中都显示为以下文本:

此操作将输入作为输出传递。

令人困惑的是,这些内置快捷方式通常会针对第三方应用程序进行操作,例如Instagram或Overcast。很难分辨出哪些应用程序的快捷方式是由应用程序开发人员添加的,哪些是由Workflow开发人员添加的。
唉。
参考资料:
Mac Stories上的“Shortcuts: A New Vision for Siri and iOS Automation”文章:

目前,根据我所了解的情况,iOS 12中的Siri并不支持将输入消息传递给使用用户短语激活的自定义快捷方式的功能,并且目前尚不太可能在iOS 12的第一个版本中增加这种功能。这意味着Siri只能成为自定义快捷方式的启动器,而不能成为可以在运行时传递特定参数的用户命令的实际接口。

此外,还有这个推文

iOS 12的W̶o̶r̶k̶f̶l̶o̶w̶ Shortcuts的问题在于,Workflow擅长获取输入,并将变量沿着链传递给其他操作。但是,第三方Siri Shortcuts不允许任何数据输入或输出。


1
看起来你是对的。带有输入/输出快捷方式的第三方应用程序也具有相同功能的 x-callback-url 方案(示例)。可以推测,这就是 Shortcuts/Workflow 使用的基础系统。他们只是为特定的应用程序包装了一个漂亮的 UI。 - David Albers

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接