首页 > 解决方案 > INSearchForNotebookItemsIntentResponse 与单个任务列表

问题描述

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

在此处输入图像描述

如果提供了多个多任务列表,自定义 Intents UI 将按预期加载。

更糟糕的是,Apple 的 UI 有这些奇怪的复选框,它们既不与我的应用程序或自定义 Intent UI 协调,也不做任何事情。它们没有连接到任何地方,即使它们看起来与 Apple 的提醒复选框相同,点击它们也无济于事,也无法提供交互。

为了解决这个问题,我一直在将一个虚拟 INTask 对象填充到响应上的任务数组中,这会导致自定义 UI 呈现(从 Things 应用程序的 Siri 界面中发现了这个技巧)但真的很不想这样做:它在自定义 UI 的底部添加了一个残留的“标题”,上面写着Items,当 Siri 说话时,她会说一些类似于“找到两个项目”的内容,因为虚拟对象与找到的列表一起被考虑。

自从我开始使用 SiriKit API 以来,我就已经通过它学习了 YMMV,但这是一个困扰我的应用程序并继续存在于 iOS 12 预览中的特殊问题。

标签: iossirikit

解决方案


这与您提供关键见解的几乎同一时间的这篇文章有关。似乎对于response.notesand response.taskLists,调用 IntentsUI 扩展需要两个或多个项目。对于response.tasks,一个或多个就足够了。

如果您从一个任务列表更改为仅一组任务(即使只有一个工作),您的一个问题可能会得到解决。如果您不喜欢单选按钮,请设置INTask.taskType.notCompletable.unknown。我猜点击单选按钮将触发具有该标识符的该任务的某些活动,但尚未尝试使用该 b/c 它不适用于我的应用程序。


推荐阅读