包含 Siri 和 Widget 的项目的 IntentHandler

IntentHandler for project that contains both Siri & Widget

我将 Siri 添加到我的项目中并使用 IntentHandler 来处理 Siri 的意图。 然后我将 Widget 添加到我的项目中,因此也需要处理它的意图。

我扩展了我的 IntentHandler 的处理程序函数以处理 Widget 意图并且它有效,但是我不明白在我的 xcode 项目中 Widget 被配置为使用相同的 IntentHandler,我什至看到此文件未包含在 Widget 目标中,因此不了解其工作原理。

在文档中找不到任何地方解释如何配置哪个意图处理程序将处理意图,特别是是否可以定义多个 IntentHandler 实例,一个处理 Siri 的意图,另一个处理 Widget 的意图,以及如果是,如何操作。

我也在 Apple 开发者论坛中询问 this question,但没有得到任何回复。

where in my xcode project the Widget is configured to use the same IntentHandler

在 Widget 扩展中,您只需指定要使用的 Intent(通过实施 IntentConfigurationIntentTimelineProvider 等)。

在 IntentHandler 扩展中指定要支持的 Intent。

都是由父应用和Intent类型连接的。 IntentHandlerWidget 一无所知(反之亦然)。


how to configure which intent handler will handle intents

可以在IntentHandler扩展名的Info.plist文件中配置。具体在 IntentsSupported 部分:


if it's possible to define multiple IntentHandler instances, one to handle Siri's intent and another one to handle Widget's intents

是的,您可以在 IntentsSupported 部分创建两个 IntentHandler 扩展和 select 支持的意图(如上图所示)。


这是一个 GitHub repository 包含不同的 Widget 示例,包括 Dynamic Intent Widget。