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

iOS AppIntent与Siri:如何在初始请求中传递参数?

解决方案

一、AppIntents 完全支持直接传递参数

你提到的「Siri逐步询问参数」是默认行为,但通过配置Intent的参数属性,完全可以让Siri在初始请求中直接解析并传递参数(比如书名、作者)。

具体实现步骤:

  • 定义一个遵循AppIntent协议的自定义Intent,将书名、作者设为必填参数
  • 给参数添加@Parameter属性,并配置displayName和description,帮助Siri理解参数含义
  • 可选:如果参数属于特定实体(比如书籍、作者),可以使用EntityProperty或自定义Entity类型,提升Siri的识别准确率

示例代码:

import AppIntents

struct AddBookIntent: AppIntent {
    static var title: LocalizedStringResource = "添加书籍"
    
    @Parameter(title: "书名", description: "要添加的书籍名称")
    var bookTitle: String
    
    @Parameter(title: "作者", description: "书籍的作者姓名")
    var authorName: String
    
    func perform() async throws -> some IntentResult {
        // 这里执行添加书籍的逻辑,比如存入本地数据库或同步到后端
        print("添加书籍:\(bookTitle),作者:\(authorName)")
        return .result()
    }
}

配置完成后,用户可以直接说「嘿Siri,添加一本名为《Atomic Habits》、作者为James Clear的书籍」,Siri会自动解析参数并调用你的Intent,无需分步询问。

二、关于SiriKit的替代方案

如果需要更底层的控制,SiriKit的INAddMediaIntent(媒体类)或自定义Intent也能实现类似功能,但AppIntents是苹果在iOS 16+推出的简化方案,语法更简洁,集成成本更低,优先推荐使用AppIntents。

三、快捷指令与Siri的结合

你创建的快捷指令是支持Siri触发的,只需确保:

  • 快捷指令中设置了可接收的参数(比如「书名」「作者」变量)
  • 在快捷指令的「设置」中开启「在Siri中显示」,并录制对应的语音触发短语
  • 当用户说出包含参数的触发语时,Siri会自动将参数映射到快捷指令的变量中

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 21:59:57