未达到 INSearchForNotebookItemsIntent 的 IntentsUI 扩展
IntentsUI extension not reached for INSearchForNotebookItemsIntent
同时实现自定义和标准 SiriKit 意图,并且总体上取得了良好的成功。原则上,在 Intents 和 IntentsUI 扩展的 info.plist 中,您包括支持的意图 class,并且 UI 扩展在 运行 之后意图已成功处理。
这适用于我的自定义意图(例如,MyAppCustomIntent
)和标准意图之一(INSendMessageIntent
)。但是对于我已经实现的另一个意图,INSearchForNotebookItemsIntent
,从未启动 UI 扩展。启动 Intents 扩展,准确处理 Siri 交互,Siri 准确提供该意图的默认响应。但是调试器永远不会附加该意图 class 的 IntentsUI。
我只使用一个 Intents 扩展和一个 IntentsUI 扩展,仔细检查所有三个 Intents class 是否在每个扩展各自的 IntentsSupported
数组中,并通过复制和粘贴添加 class 名称以避免拼写错误。
除了 info.plist 中 IntentsSupported
的意图或不正确设置的失败响应之外,还有什么可能阻止 UI 扩展启动 INSearchForNotebookItemsIntent
?
从我上面的评论中重新利用了这个,这是对问题的 an 回答,尽管从技术上讲不是 true 解决方案,因为这看起来像是API 中的错误(自推出以来一直存在)。
我发现如果您在成功的响应对象上提供不止一项(任务列表、任务、注释),甚至是空对象,自定义 UI 将正确附加,即使它们是可选的。
例如,当在搜索中找到单个 taskList 时,我将向响应中添加一个空白任务对象。
response.tasks = [INTask(title: INSpeakableString(spokenPhrase: ""), status: .unknown, taskType: .unknown, spatialEventTrigger: nil, temporalEventTrigger: nil, createdDateComponents: nil, modifiedDateComponents: nil, identifier: "BugFixTask")]
同时实现自定义和标准 SiriKit 意图,并且总体上取得了良好的成功。原则上,在 Intents 和 IntentsUI 扩展的 info.plist 中,您包括支持的意图 class,并且 UI 扩展在 运行 之后意图已成功处理。
这适用于我的自定义意图(例如,MyAppCustomIntent
)和标准意图之一(INSendMessageIntent
)。但是对于我已经实现的另一个意图,INSearchForNotebookItemsIntent
,从未启动 UI 扩展。启动 Intents 扩展,准确处理 Siri 交互,Siri 准确提供该意图的默认响应。但是调试器永远不会附加该意图 class 的 IntentsUI。
我只使用一个 Intents 扩展和一个 IntentsUI 扩展,仔细检查所有三个 Intents class 是否在每个扩展各自的 IntentsSupported
数组中,并通过复制和粘贴添加 class 名称以避免拼写错误。
除了 info.plist 中 IntentsSupported
的意图或不正确设置的失败响应之外,还有什么可能阻止 UI 扩展启动 INSearchForNotebookItemsIntent
?
从我上面的评论中重新利用了这个,这是对问题的 an 回答,尽管从技术上讲不是 true 解决方案,因为这看起来像是API 中的错误(自推出以来一直存在)。
我发现如果您在成功的响应对象上提供不止一项(任务列表、任务、注释),甚至是空对象,自定义 UI 将正确附加,即使它们是可选的。
例如,当在搜索中找到单个 taskList 时,我将向响应中添加一个空白任务对象。
response.tasks = [INTask(title: INSpeakableString(spokenPhrase: ""), status: .unknown, taskType: .unknown, spatialEventTrigger: nil, temporalEventTrigger: nil, createdDateComponents: nil, modifiedDateComponents: nil, identifier: "BugFixTask")]