ios14 - 包含 Siri 和 Widget 的项目的 IntentHandler
问题描述
我将 Siri 添加到我的项目中,并使用 IntentHandler 来处理 Siri 的意图。然后我将 Widget 添加到我的项目中,因此也需要处理它的意图。
我扩展了我的 IntentHandler 的处理程序函数来处理 Widget 意图并且它可以工作,但是我不明白在我的 xcode 项目中,Widget 被配置为使用相同的 IntentHandler,我什至看到这个文件不包含在 Widget 目标中所以不明白它是如何工作的。
在文档中的任何地方都没有找到关于如何配置哪个意图处理程序将处理意图的解释,特别是是否可以定义多个 IntentHandler 实例,一个用于处理 Siri 的意图,另一个用于处理 Widget 的意图,如果是,该怎么做所以。
我也在 Apple Developer Forums 中问过这个问题,但没有得到任何回应。
解决方案
在我的 xcode 项目中,Widget 配置为使用相同的 IntentHandler
在 Widget 扩展中,您只需指定要使用的 Intent(通过实现IntentConfiguration
等IntentTimelineProvider
)。
在 IntentHandler 扩展中,您指定要支持的意图。
这一切都由父应用程序和 Intent 的类型连接起来。IntentHandler
什么都不知道Widget
(反之亦然)。
如何配置哪个意图处理程序将处理意图
可以在扩展的Info.plist
文件中配置。IntentHandler
具体在以下IntentsSupported
部分:
如果可以定义多个 IntentHandler 实例,一个处理 Siri 的意图,另一个处理 Widget 的意图
是的,您可以创建两个IntentHandler
扩展并在该部分中选择要支持的意图IntentsSupported
(如上图所示)。
这是一个GitHub 存储库,其中包含不同的 Widget 示例,包括 Dynamic Intent Widget。
推荐阅读
- c# - docker-compose app container can't connect to mongo container
- c# - Do AsyncLocal<> values need to be thread-safe?
- c# - How can I bind the Window title to a string
- powershell - How to get certificate from Azure KeyVault as .crt and .key files?
- firebase - Firebase notifications message with emojis in Flutter
- c# - Is it safe to `.Select` an `out` parameter that was set in a preceding `.Where` clause (with `TryParse`)?
- c++ - How do I broadcast a WM_SETTINGCHANGE message?
- opencart2.3 - 在特定类别 id opencart 2.3.0.2 上添加代码
- python - 在for循环中发送多条消息discord python bot
- cmd - 远程计算机上的 Program Files 中的 /c cmd echo 和 app 存在问题...