0

实现自定义和标准 SiriKit 意图,并且通常取得了不错的成功。原则上,在 Intents 和 IntentsUI 扩展的 info.plist 中,都包含支持的意图类,并且在成功处理意图后运行 UI 扩展。

这适用于我的自定义意图(例如,MyAppCustomIntent)和标准意图之一(INSendMessageIntent)。但是对于我实现的另一个意图INSearchForNotebookItemsIntent,UI 扩展永远不会启动。Intents 扩展启动,Siri 交互被准确处理,该 Intent 的默认响应由 Siri 准确提供。但是调试器永远不会附加该意图类的 IntentsUI。

我只使用了一个 Intents 扩展和一个 IntentsUI 扩展,仔细检查了所有三个 Intents 类是否都在IntentsSupported每个扩展的各自数组中,并通过复制和粘贴添加类名以避免拼写错误。

INSearchForNotebookItemsIntent除了意图的失败响应或 info.plist 中的不正确设置之外,还有什么可能阻止 UIExtension 启动IntentsSupported

4

1 回答 1

0

从我上面的评论中重新调整了它的用途,这是对这个问题回答,尽管在技术上不是真正的解决方案,因为这似乎是 API 中的一个错误(自引入以来一直存在)。

我发现如果您在成功的响应对象(甚至是空对象)上提供多个项目(任务列表、任务、注释),自定义 UI 将正确附加,即使它们是可选的。

例如,当在搜索中找到单个 taskList 时,我将在响应中添加一个空白任务对象。

response.tasks = [INTask(title: INSpeakableString(spokenPhrase: ""), status: .unknown, taskType: .unknown, spatialEventTrigger: nil, temporalEventTrigger: nil, createdDateComponents: nil, modifiedDateComponents: nil, identifier: "BugFixTask")]
于 2018-08-07T00:11:36.227 回答