WWDC Quick Look 💓 By SwiftGGTeam
Feature your actions in the Shortcuts app

Feature your actions in the Shortcuts app

观看原视频

Highlight

iOS 14 的 Shortcuts App 会根据 App 捐赠的 Intent、User Activity 和 INVoiceShortcutCenter 建议,把常用动作展示在自动化建议、Gallery 和 Editor 中,让用户用几次点击就能把日常任务做成快捷指令。

核心内容

用户愿意自动化一个任务,通常是因为这个任务重复出现。到书店时打开阅读清单、晚上练习语言、下班路上播放常听的歌单,这些动作本来都藏在不同 App 里。用户如果要自己配置快捷指令,需要知道哪个 App 提供了什么动作,还要手动找到合适的触发条件。

iOS 14 扩展了 Shortcuts 的自动化建议。系统不只推荐固定的日常流程,也能根据 App 捐赠的 user activity、系统 Intent 和自定义 Intent,判断某个动作是否适合在某个时间、地点或设备连接条件下运行。Session 里的 Duolingo 例子就是晚上经常练法语后,系统建议每个工作日 9 点自动练习。

开发者要做的事很具体:在用户完成真实操作时捐赠 interaction,让系统学习;用 INVoiceShortcutCenter 提供一组明确的快捷指令建议;把需要长期可见的 intent 标记为 configurable。这样,动作会进入自动化建议、Shortcuts Gallery 和 Shortcuts Editor 三个入口。

自动化建议来自真实使用

演讲强调,自动化建议只需要 donation。用户在 App 里点了一份汤、播放了一张专辑、开始了一次训练,App 就把这次 interaction 捐给系统。系统随后把动作和用户的日常模式关联起来,例如晚间、通勤、到达健身房或连接 AirPods。

Shortcuts Gallery 里的 “Shortcuts from Your Apps” 不全靠系统猜。App 可以通过 INVoiceShortcutCenter 设置建议,让一些高价值动作稳定出现。Editor 里的动作来源更广:donation、INVoiceShortcutCenter 建议、configurable intent,以及少数系统 Intent 都可能出现。

Daily Routines 给垂直 App 留出位置

Daily Routines 是 iOS 13 引入的特殊自动化建议,iOS 14 继续把它放在通勤和健身流程里。媒体 App 采用并捐赠 INPlayMediaIntent 后,可能进入 Going to Work、Going Home 和 At the Gym 流程;健身 App 采用 INStartWorkoutIntent 后,可能进入 At the Gym 流程。

详细内容

1. 捐赠 interaction,让系统学习自动化建议(02:06

自动化建议的核心输入是 donation。逐字稿用 soup delivery App 举例:用户下单后,App 初始化 PlaceOrderIntent,把 soup 参数设成 INObject,给 soup 和 delivery location 参数设置图片,再用 INInteraction 包装并调用 donate

这场 session 没有官方 code snippets,下面只把逐字稿明确讲到的调用顺序整理成最小 Swift 形态:

let intent = PlaceOrderIntent()
let soup = order.soup

intent.soup = INObject(identifier: soup.identifier, display: soup.name)
intent.setImage(soupImage, forParameterNamed: "soup")
intent.setImage(deliveryLocationImage, forParameterNamed: "deliveryLocation")

let interaction = INInteraction(intent: intent, response: nil)
interaction.donate(completion: nil)

关键点:

  • PlaceOrderIntent 是 App 自己定义的自定义 Intent,用来表示一次订汤动作。
  • intent.soup 使用 INObject 表示参数值,Shortcuts 才能在建议和编辑界面里展示用户选中的汤。
  • setImage 对应演讲中给 soup 和 delivery location 参数设置图片的步骤,目标是让建议更容易辨认。
  • INInteraction 把一次具体操作包装成系统能学习的事件。
  • donate 是触发学习的关键调用;演讲明确说,系统生成自动化建议只需要开发者做 donation。

2. 让动作进入 Daily Routines(04:13

Daily Routines 是更结构化的自动化建议。Shortcuts 会用一步步流程帮用户搭建 Going to Work、Going Home 和 At the Gym 自动化。App 需要采用对应的系统 Intent,并在用户真实使用时捐赠,才有机会进入这些流程。

let playbackInteraction = INInteraction(intent: playMediaIntent, response: nil)
playbackInteraction.donate(completion: nil)

let workoutInteraction = INInteraction(intent: startWorkoutIntent, response: nil)
workoutInteraction.donate(completion: nil)

关键点:

  • playMediaIntent 对应演讲点名的 INPlayMediaIntent,适合音乐、播客和有声书 App。
  • startWorkoutIntent 对应演讲点名的 INStartWorkoutIntent,适合健身 App。
  • 示例没有展开两个 Intent 的初始化参数,因为这场 session 只讲采用和捐赠,不讲 media 或 workout Intent 的完整配置。
  • Shortcuts 会把用户行为和通勤、健身等 routine 关联起来,再把动作放进对应步骤。

Gallery 里的 “Shortcuts from Your Apps” 有两类来源:App 显式设置的 shortcut suggestions,以及基于 donation 的智能建议。显式设置适合那些你希望用户一打开 Shortcuts 就能看到的动作,例如查看订单状态或打开常用列表。

let orderStatusShortcut = INShortcut(intent: orderStatusIntent)
let topSoupsShortcut = INShortcut(userActivity: topSoupsUserActivity)

INVoiceShortcutCenter.shared.setShortcutSuggestions([
    orderStatusShortcut,
    topSoupsShortcut,
])

关键点:

  • INShortcut(intent:) 把一个 Intent 包装成可推荐的快捷指令动作。
  • INShortcut(userActivity:) 让基于 NSUserActivity 的动作也能进入建议列表。
  • setShortcutSuggestions 是开发者主动整理 Gallery 入口的 API。
  • Gallery 仍会结合用户最近做过的事展示智能建议,所以显式建议和 donation 应该一起做。

4. 让动作稳定出现在 Shortcuts Editor(07:50

Editor 是用户自己搭建 shortcut 的地方。演讲把 Editor 的来源拆成几类:最近 donation 或 INVoiceShortcutCenter 建议的动作、支持 key parameters 的动作、标记为 configurable 的 Intent,以及少数系统 Intent。

Shortcuts Editor visibility:
- Donate actions during regular app usage.
- Set shortcut suggestions with INVoiceShortcutCenter.
- Mark important intents as configurable.
- System intents SendPayment, RequestPayment, and RequestRide can appear directly.

关键点:

  • donation 让 Editor 能展示用户最近或经常执行的动作。
  • INVoiceShortcutCenter 适合固定推荐一组高价值动作。
  • configurable intent 即使没有 donation 或 suggestion,也可以出现在 Editor 中。
  • 支持 key parameters 的动作会以参数选项行展示,例如 Streaks 示例里的 “Run Five Miles” 和 “Study French”。

核心启发

  • 做什么:在每次用户完成高频任务后捐赠对应 Intent。为什么值得做:iOS 14 的自动化建议会根据 donation 学习用户习惯,动作才有机会在合适的时间、地点或设备连接条件下出现。怎么开始:先挑一个稳定成功的动作,例如下单、播放、打卡或开始训练,在成功回调里创建 INInteraction 并调用 donate
  • 做什么:为 Shortcuts Gallery 维护一组官方推荐动作。为什么值得做:Gallery 不是纯被动入口,INVoiceShortcutCenter 能让你把最有价值的动作直接放到 “Shortcuts from Your Apps”。怎么开始:选出 2-4 个新用户也能理解的动作,用 INShortcut 包装 Intent 或 user activity,再调用 setShortcutSuggestions
  • 做什么:把需要长期可见的动作做成 configurable intent。为什么值得做:Editor 会展示 configurable intent,即使用户还没有在 App 里触发过 donation。怎么开始:检查 Intent Definition File,把适合用户手动组合的动作标记为 configurable,并整理 key parameters 的显示顺序。
  • 做什么:媒体 App 主动接入 Daily Routines。为什么值得做:Going to Work、Going Home 和 At the Gym 流程都包含 Play Media 步骤,用户可以在几次点击内把播放内容加进多步自动化。怎么开始:采用 INPlayMediaIntent,在用户播放音乐、播客或有声书后捐赠 interaction。
  • 做什么:健身 App 把开始训练做成 Shortcuts 动作。为什么值得做:At the Gym routine 会引导用户配置健身相关动作,INStartWorkoutIntent 是进入该流程的明确入口。怎么开始:用系统 workout Intent 表达开始训练动作,在训练开始成功后 donation,并确认参数名称和图片在 Shortcuts 中可读。

关联 Session

评论

GitHub Issues · utterances