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

如何让AppIntent请求数字类参数?以书籍页数查询为例

创建支持页数参数的AppIntent实现方案

你不需要为每一页单独创建Intent,只需要给你的SiriSearchPage添加一个页数参数,让系统自动询问用户想要跳转的具体页码即可。以下是优化后的完整实现:

struct SiriSearchPage: AppIntent {
    static var title: LocalizedStringResource = "跳转到指定书页"
    static var description = IntentDescription("让应用跳转到书籍的指定页码")
    
    static var openAppWhenRun: Bool = true
    
    // 定义页数参数,设置标题和描述,让系统理解该参数的用途
    @Parameter(title: "页码", description: "你想要跳转的书籍页码")
    var pageNumber: Int
    
    static var parameterSummary: some ParameterSummary {
        // 告知系统参数的交互逻辑,Siri会据此询问用户
        Summary("跳转到书籍的\(\.$pageNumber)页")
    }

    @MainActor
    func perform() async throws -> some IntentResult {
        // 在这里实现跳转到指定页码的逻辑
        // 例如:BookReaderManager.shared.jumpTo(page: pageNumber)
        
        return .result(dialog: "已为你跳转到第\(pageNumber)页")
    }
}

关键部分说明:

  • @Parameter:通过这个属性标记页数参数,系统会自动处理用户的输入(包括语音或文字),无需手动创建多个Intent。你可以设置参数的标题和描述,帮助Siri和用户理解参数的作用。
  • parameterSummary:这里的摘要定义了Intent的交互句式,系统会根据这个内容生成自然的询问语(比如Siri会问“你想要跳转到第几页?”)。
  • perform方法:在这个方法里拿到用户输入的pageNumber,执行实际的页面跳转逻辑即可,最后可以返回对话反馈给用户。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 20:27:05