我使用INSearchForNotebookItemsIntent显示Siri界面中的列表和项,并使用自定义意图UI。当返回一个成功的INSearchForNotebookItemsIntentResponse时,TaskLists数组属性中只有一个任务列表,并且(以及响应的任务数组为空),SiriKit无法加载我的定制意图UI,而是加载苹果的默认UI。

如果提供了多个任务列表,则将按预期加载自定义意图UI。
更糟糕的是,苹果的UI有这些奇怪的复选框,既不与我的应用程序或定制意图UI协调,也不做任何事情。它们没有连接到任何地方,尽管它们看起来与苹果的提醒复选框相同,但点击它们没有任何效果,也无法提供交互。
为了解决这个问题,我一直在响应的任务数组中填充一个虚拟的INTask对象,这会导致自定义UI呈现(从Things应用的Siri界面中发现了这个技巧),但是它真的不想这样做:它在自定义UI的底部添加了一个剩余的"header“,上面写着条目,当Siri说话时,她会按照”找到了两个条目“的方式说一些话,因为这个虚拟条目是在查找列表的旁边考虑的。
我从开始使用SiriKit API开始学习YMMV,但这是困扰我的应用程序的一个特殊问题,并且一直存在于iOS 12预览版中。
发布于 2018-08-06 15:58:35
这与您提供关键洞察力的几乎同一时间的this post有关。对于response.notes和response.taskLists,调用IntentsUI扩展似乎需要两个或多个项。对于response.tasks,一个或多个就足够了。
如果您从一个任务列表更改为一组任务(即使其中一个任务有效),您的一个问题可能会得到解决。如果您不喜欢单选按钮,请将INTask.taskType设置为.notCompletable或.unknown。我猜想点击单选按钮会触发带有标识符的任务的一些活动,但是还没有尝试过b/c --它不适用于我的应用程序。
https://stackoverflow.com/questions/51700796
复制相似问题