App Intents 是什么
App Intents 是苹果新的"把 App 能力暴露给系统"的方式。用它声明一个操作后,Siri、快捷指令、Spotlight、锁屏都能直接调用,用户不用打开 App 就能完成一件事。
把 App 的动作登记一下,系统就能替用户喊它。
这篇写一个最小可用的 Intent。
以前要接 Siri 和快捷指令得写一堆 SiriKit 扩展和配置文件,门槛很高。App Intents 把这些都简化成一个 struct,加几行代码,编译时系统自动把它登记到能力库里。你不用管 Siri 怎么识别、快捷指令怎么对接,系统帮你串。这也是为什么苹果在推它——开发者多写一行,用户在系统层面多一个可用动作。
写一个 Intent
struct AddNoteIntent: AppIntent {
static var title: LocalizedStringResource = "记一笔"
func perform() async throws -> some IntentResult {
NoteStore.shared.add("随手记")
return .result()
}
}
- AppIntent协议声明操作。
- perform真正执行动作。
- title系统里显示的名字。
perform 是真正干活的地方,可以 async,里面 await 网络请求、读数据库都行。返回 IntentResult 告诉系统干完了;带返回值的 Intent 可以把结果交回 Siri 念出来,比如"查余额"直接报数字。
声明完的 Intent 会自动被系统索引到 Spotlight 和快捷指令,用户不用做任何额外配置。把高频动作都做成 Intent,用户体验立刻上一档。
带参数的 Intent
加一个 @Parameter,Siri 会自动问用户补全。
@Parameter(title: "内容") var text: String
带参数后,用户对 Siri 说一句话,Siri 会自动把话里的关键信息填进参数;用户手动在快捷指令 App 里搭流程时,这个参数就是要填的空。参数还能设默认值、枚举候选,越清楚越好用。
Siri 与快捷指令
声明完 Intent,它自动出现在"快捷指令"App 的动作库里,用户可以拼成自动化。说一声"Siri,记一笔"也能直接触发。
Spotlight 暴露动作
配合 AppShortcuts,常用 Intent 会出现在 Spotlight 搜索里,搜一下就能直接跑。
实战:记一笔快捷指令
写一个带 text 参数的 AddNoteIntent,用户对 Siri 说"记一笔买牛奶",参数自动填进 perform,笔记就存好了。整条链路就通了。
小结
App Intents 让 App 的能力走出 App:一个 struct 加 perform,Siri、快捷指令、Spotlight 都能用。把高频动作做成 Intent,用户体验立刻上一档。