Shortcut:什么是快捷指令,iOS自动化场景

作者: IT Sectr 发布日期: 2026-02-15 阅读时间: 9 分钟

Shortcut(快捷指令) — Apple的Shortcuts应用程序中的自动化场景,无需编写代码即可连接多个应用程序和服务。Shortcuts通过Siri语音启动、按计划、在进入或离开地理围栏时、通过点击小组件或触碰NFC标签来启动。场景通过Actions构建器以可视化方式拖拽块创建。更多信息请参阅Shortcuts用户指南

要点

  • Shortcut — 连接应用程序操作的无代码自动化场景
  • Shortcuts应用程序 — 适用于iOS和iPadOS的带Actions块的可视化构建器
  • Siri集成 — Shortcuts通过用户设定的短语语音启动
  • 触发器 — 时间、地理围栏、NFC、小组件、应用打开和专注模式
  • App Intents — 用于将第三方应用程序的Actions添加到Shortcuts的框架

什么是Shortcut(快捷指令)——自动化场景?

Shortcut — 在iOS、iPadOS、macOS和watchOS上自动执行任务的一系列操作(Actions)组合成一个场景。与普通应用程序不同,Shortcut没有固定界面——它在后台运行或仅显示快速输入数据的对话框。用户在Shortcuts应用程序中通过组合Actions图库中的块来创建场景,并通过一次触摸、语音或通过触发器自动启动。

Shortcuts应用程序 — Apple内置的自动化构建器,适用于所有运行iOS 13+、iPadOS、macOS 12+和watchOS的设备。Actions库包含300多个内置块:系统(发送消息、拨打电话、打开应用程序)、多媒体(照片、音乐、播客)、互联网(通过Get Contents of URL使用REST API)、文件和文档操作。图库包含来自Apple和社区的现成场景——从向联系人发送预计到达时间到批量重命名文件。

Actions库由第三方应用程序通过App Intents框架补充。开发者在Intents.intentdefinition中注册意图,它们会自动出现在Shortcuts图库中。例如,Things 3应用程序添加了「创建任务」和「显示今日任务」操作,而CARROT Weather添加了「今日天气预报」及其位置参数。

Shortcuts在iOS上如何工作

Shortcuts工作在iOS沙盒中——场景在后台进程shortcuted中以有限权限运行。每个Action都是对预定义处理程序的调用,该处理程序接收输入参数、执行操作并返回结果。系统通过管道将一个Action的输出数据传递给下一个Action的输入——用户在编辑器中将其视为块的蓝色连接点。

Shortcut的执行流是线性的:Actions按从上到下的顺序依次执行。条件跳转通过If块实现——系统评估条件并执行相应分支。可用的循环有Repeat(重复N次)、Repeat with Each(按列表元素)和For Each。一个Action中的错误会中断整个场景,除非添加了Try/Catch块。

swift
import Intents

class OrderCoffeeIntentHandler: NSObject, OrderCoffeeIntentHandling {
    func handle(intent: OrderCoffeeIntent,
                completion: @escaping (OrderCoffeeIntentResponse) -> Void) {
        let order = Order(coffee: intent.coffee, size: intent.size)
        placeOrder(order) { success in
            let response = success
                ? OrderCoffeeIntentResponse.success(coffee: intent.coffee)
                : OrderCoffeeIntentResponse.failure(error: "Order failed")
            completion(response)
        }
    }
}

每个Intents处理程序通过INIntentsSupported键在Info.plist中注册。当通过Siri启动Shortcut时,系统找到相应的IntentHandler并异步执行。响应以INIntentResponse对象形式返回,包含状态、消息和可选数据以显示给用户。

在Shortcuts应用程序中创建场景

创建Shortcut从在Shortcuts应用程序图库中按「+」开始。用户从类别中选择Actions:应用程序、场景、互联网、文件、健康、音乐等。每个Action都需要配置——输入字段、开关、列表。组装后,场景通过Play按钮测试,如有错误,问题块会高亮显示。发布时,Shortcut导出为.shortcut文件,通过AirDrop或iMessage发送。

变量与魔法 Shortcuts支持变量——一个Action的输出数据可以传递给另一个。魔法变量(Magic Variables)自动确定:如果前一个Action返回图像,系统会在下一个的参数中建议该图像。用户还可以通过Set Variable块创建命名变量,并在场景中的任何位置使用它们。

swift
import AppIntents

struct CreateTaskIntent: AppIntent {
    static var title: LocalizedStringResource = "Create Task"
    static var description = IntentDescription(
        "Creates a new task in your to-do list"
    )

    @Parameter(title: "Task Title")
    var taskTitle: String

    func perform() async throws -> some IntentResult {
        let task = TaskModel(title: taskTitle)
        try await Database.shared.save(task)
        return .result(dialog: "Task created")
    }
}

App Intents — Apple(iOS 16+,SwiftUI)的现代框架,已取代Intents用于自定义意图。与旧的SiriKit不同,App Intents无需Objective-C运行时即可工作,通过async/await支持异步,并自动为Siri生成对话框。CreateTaskIntent结构体用AppIntent协议标记,参数用@Parameter属性标记。框架在Shortcuts图库中自动创建操作。

启动触发器与系统集成

Shortcuts触发器 — 场景自动启动的条件。配置在Shortcuts应用程序的Automation标签页中完成。触发器分为个人(时间、位置、充电)、触觉(NFC、摇动)、系统(应用程序打开、专注模式、连接CarPlay)和事件(收到电子邮件、日历事件、通知)。每个触发器可以设置为立即执行或需确认执行。

触发器启动条件使用示例
时间特定时间、日出/日落在22:00开启「请勿打扰」模式
地理围栏进入或离开区域下班时发送「正在回家」
NFC触碰NFC标签触碰标签时启动「智能家居」场景
应用打开或关闭应用程序关闭YouTube时提醒关闭计时器
专注切换专注模式激活睡眠专注时开启深色主题
充电连接/断开电源连接MagSafe时打开充电小组件

自动化 — Shortcuts的关键功能,普通应用程序没有开发者权限则无法使用。用户配置一次触发器即可忘记——场景在后台自动运行无需参与。例如,「当我到家时,打开Wi-Fi并关闭静音模式」的自动化在进入家庭地理围栏时启动。系统在首次配置时请求自动化权限,如果使用不频繁可能会禁用它。

macOS上的Shortcuts — 从macOS 12 Monterey开始,Shortcuts在Mac上可用。场景通过iCloud在所有Apple设备之间同步。在Mac上支持系统操作Finder、终端、自动操作和AppleScript。macOS开发者可以通过App Intents添加操作,与iOS类似。

面向开发者的App Intents和Intents框架

App Intents — 在iOS 16+和macOS 13+上将应用程序与Shortcuts集成的主要框架。开发者创建实现AppIntent协议的结构体,通过属性包装器描述参数,并实现perform()方法。系统自动在Shortcuts、Siri和Spotlight中注册意图。为了支持旧版iOS(10-15),使用带有INIntent和IntentHandler的Intents框架。

swift
import Intents

class IntentHandler: INExtension {
    override func handler(for intent: INIntent) -> AnyObject? {
        if intent is OrderCoffeeIntent {
            return OrderCoffeeIntentHandler()
        }
        return .none
    }
}

测试App Intents — 意图的调试通过Xcode完成:选择应用程序方案,在Arguments中传递-intents,模拟器将提供已注册意图列表供测试。要在接近真实的环境中测试Shortcut,构建应用程序存档并通过TestFlight安装到设备上。应用程序中的Shortcuts在首次启动后出现在图库中。

高级功能 App Intents支持带自动完成的参数(动态选项)、执行前确认(confirmation)、Siri意图(语音快捷指令)以及创建带启动按钮的小组件。Indexed intents(iOS 17+)——Siri根据上下文自动向用户建议的意图:时间、位置和操作历史。

常见问题

Shortcut与普通应用程序有何不同?

Shortcut — 是连接不同应用程序操作的场景,而不是独立的应用程序。用户不编写代码,而是从现成的Actions块组装场景。Shortcut由触发器启动,无需打开Shortcuts应用程序即可执行,而普通应用程序需要通过屏幕上的图标启动。

Shortcuts支持哪些触发器?

Shortcuts支持以下触发器:按计划的时间、进入或离开区域时的地理围栏、触碰iPhone时的NFC标签、打开应用程序、点击小组件、Siri语音命令、连接充电器、睡眠模式和专注模式,以及来自应用程序的特定通知。配置在Automation标签页中完成。

可以与其他用户共享Shortcut吗?

可以,Shortcut导出为.shortcut文件,通过AirDrop、iMessage发送或在iCloud上的Shortcuts图库中发布。接收者导入场景即可使用。从互联网下载时,iOS会要求确认并警告运行未经验证的场景存在潜在安全风险。

Shortcuts如何与第三方应用程序集成?

第三方应用程序通过iOS 16+上的App Intents框架或旧版本上的Intents框架添加操作。开发者在Intents.intentdefinition中注册操作,它们会出现在Shortcuts应用程序的Actions图库中。用户组合不同应用程序的操作——例如,从Safari发送链接到Bear笔记。

创建Shortcuts需要编程吗?

不需要,Shortcuts以可视化方式无需代码即可创建。用户从列表中拖拽Actions块,配置参数并按顺序连接。对于高级场景,可以使用Run Script Over SSH、Get Contents of URL以及Control Flow If、Repeat、For Each等块,但编程经验不是必需的。

总结

  • Shortcut — 适用于iOS、iPadOS和macOS的自动化场景,由Actions块组装而成
  • Shortcuts应用程序 — 拥有300多个内置Actions图库的可视化构建器
  • 触发器 — 时间、地理围栏、NFC、小组件、专注、充电——自动启动场景
  • Siri集成 — Shortcuts通过语音命令无需触摸屏幕即可启动
  • App Intents — 适用于iOS 16+的框架,将第三方应用程序的Actions添加到Shortcuts
  • 魔法变量 — 无需手动配置即可在Actions之间自动传输数据
  • iCloud同步 — 场景通过iCloud在所有Apple设备上可用

我们将开发一款交钥匙移动应用程序

IT Sectr自2017年以来为初创企业和企业打造iOS和Android应用程序。我们将为您提供咨询并提出最佳解决方案。

讨论项目

另请阅读