You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

iOS 16:如何在应用中实现多个AppIntent/AppShortcut

解决多AppIntent共存生效问题

核心问题分析

iOS 的AppShortcutsProvider要求整个应用只能有一个实现类,多个独立的AppShortcutsProvider会导致系统只识别最后加载的那一个,这是你遇到问题的根本原因。

正确实现步骤

  1. 合并所有AppIntent到同一个AppShortcutsProvider
    删除原来的ShortcutsOne和ShortcutsTwo两个独立的AppShortcutsProvider,创建一个全局的统一管理类:

    import AppIntents
    
    struct AppShortcuts: AppShortcutsProvider {
        static var appShortcuts: [AppShortcut] {
            // 第一个Intent的快捷指令配置
            AppShortcut(
                intent: ShortcutsOneIntent(),
                phrases: ["用\(applicationName)执行操作一"],
                shortTitle: "操作一",
                systemImageName: "1.circle"
            )
            // 第二个Intent的快捷指令配置
            AppShortcut(
                intent: ShortcutsTwoIntent(),
                phrases: ["用\(applicationName)执行操作二"],
                shortTitle: "操作二",
                systemImageName: "2.circle"
            )
        }
    }
    
  2. 统一更新快捷参数
    在ContentView.onAppear()中只需调用一次全局更新方法(若需动态更新参数):

    AppShortcuts.updateAppShortcutParameters()
    

    无需分别调用两个旧Provider的更新方法,统一调用合并后的Provider方法即可。

  3. 解决系统缓存不稳定问题

    • 修改后优先选择卸载重装应用,再打开Siri快捷指令设置页面刷新;
    • 测试前先在Xcode中执行Product > Clean Build Folder,再重新运行;
    • 若仍不生效,进入iPhone的设置 > Siri与搜索 > 所有快捷指令,手动删除旧指令后重新添加。

注意事项

  • 每个AppIntent的title和description需保持唯一,避免Siri混淆;
  • 语音指令短语尽量差异化,不要过于相似,提升识别准确率;
  • 确保每个AppIntent都正确实现perform()方法,避免语法错误导致加载失败。

内容的提问来源于stack exchange,提问作者Koa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 03:15:23