将参数传递到自定义快捷操作之外

4
我想为我的倒计时应用程序创建一个自定义快捷操作,返回包含剩余倒计时时间的变量。在iOS 13中,从自定义快捷操作返回参数是一个新功能,但我尝试过却没有成功。
我已经定义了我的意图,并使用Xcode 11创建了意图扩展,按照正常程序进行。我已成功将操作捐赠给Siri/Shortcuts,并通过与Siri交互或在iOS 13.1下从Shortcuts应用程序启动它们使它们正常运行。目前,我的其中一个操作让Siri报告描述剩余时间的字符串,并在IntentsUI扩展中显示倒计时。当从Shortcuts运行此操作时,它可以成功显示IntentsUI扩展ViewController。我希望此操作传递一个包含剩余时间的参数,以便其他Shortcuts操作可以使用它。
我创建了一个输出参数,并按照this WWDC 2019 video中29:51描述的步骤将其分配给意图响应。这包括修改应用程序的intentsdefinition文件以定义变量,将其添加为意图响应的属性,并将其标记为输出。Xcode的意图代码生成成功将输出变量添加到我的意图处理协议中,我能够在我的意图处理程序中访问和填充输出变量。
不起作用的是,当我在Shortcuts中运行操作时,它似乎没有提供输出变量。例如,如果我在其下方添加一个“文本”操作,则没有线将我的自定义操作连接到文本操作。如果我尝试向稍后的操作添加变量,则该变量不会出现在可用变量列表中,也不会在我点击“魔法变量”按钮时挂在我的操作下面。
我知道其他应用开发人员已成功实现了具有输出参数的Shortcuts操作,因此它似乎不是Xcode 11或iOS 13的错误(其中有很多)。任何帮助/建议都将不胜感激。

你解决了吗? - Sultan Ali
1个回答

2

搞定了!为了日后的读者着想...

如果您想从自定义快捷方式中传递参数,您需要在intentdefiniton文件中勾选“意图是用户可配置的”复选框。即使像我这样没有输入参数供用户配置,您也需要这样做。这一点在上述WWDC视频中并不明显。


你能解释一下吗? - Sultan Ali

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