SiriKit官方文档 - Part1-1 SiriKit介绍

最近在看SiriKit的官方文档,自啃 + Google翻译,如有错误或语义不当还望指出。

官方文档原文 - Introduction to SiriKit

SiriKit可以将你的App的内容和服务与系统集成。顾名思义,SiriKit用于支持Siri,使用户能够使用语音控制App。当然也可以用SiriKit将来自特定类型App的数据集成到整个地图体验中。在这两种情况下,添加SiriKit到你的App的过程是一样的。

SiriKit包含两个框架,你可以使用它们来实现应用扩展。Intents Framework支持你的应用程序和系统之间的基本通信。你可以使用该框架来定义可执行的任务类型,并在被需要时执行这些任务。Intents UI Framework提供了可选的支持,以便在执行任务时显示自定义界面。

SiriKit支持被分为多个域(domains),每个域定义可以执行的一个或多个任务。为了支持SiriKit,应用程序必须支持以下域之一:

  • VoIP呼叫
  • 消息
  • 付款
  • 照片
  • 锻炼
  • 乘车预订
  • CarPlay(仅限汽车供应商)
  • 餐厅预订(需要苹果的额外支持)

每个域定义一个App可以执行的一个或多个任务。这些任务称为意图(intents),因为它们表示用户的意图,每个意图代表了一个包含多种与任务信息相关属性的自定义类。例如,Payments域中的意图包含具有要转移的金额和交易中涉及的用户的属性。当用户通过Siri或Maps发出请求时,系统会使用请求的详情填充意图对象,并将该对象传递到你的应用扩展中。你可以使用意图对象验证请求数据并执行关联的任务。

有关每个域中包含的意图的列表,参阅意图域。有关Intents Framework中的类的列表,参阅Intents Framework Reference

Intents和Intents UI应用程序扩展

你通过两种不同类型的应用扩展添加对SiriKit的支持:

  • Intents 扩展 用来接收来自系统的意图对象并执行相关联的任务。此扩展是必需的。
  • Intents UI扩展 允许你在成功处理意图之后自定义Siri或Maps界面。此扩展是可选的。

仅当需要时,系统才会启动和运行两个扩展,并且两个扩展必须提供明确定义的一组交互。所有支持SiriKit的App必须具有Intents扩展。提供Intents UI扩展是可选的,但它是为你的用户提供熟悉的体验的好办法。

Siri和Maps如何处理请求

Siri和Maps通过收集所需的数据并将它们转换为Intents对象以供你处理来管理用户请求。在Siri的情况下,Siri处理所有的自然语言,将语音请求转换为意图对象中的有效数据。因为语音请求最初可能不包含足够的信息,Siri与你的Intents扩展一同验证你了解用户的意思和你需要的数据。在此验证过程中,你可能会要求Siri向用户确认某些详细信息。在整个过程中,Siri管理与用户的所有交互,让你自由关注数据本身。

相似的,Maps也会管理与用户的所有互动。由于Maps仅支持与乘车预订和餐厅预订相关的域,因此它的用户界面要专注于轻松完成这些任务。由于在Maps中,用户直接选择他们想要的内容,而不是通过口头提问。所以让源于地图的意图少有歧义,且不怎么需要验证,这最终简化了相关意图的处理过程。

SiriKit译文系列

SiriKit官方文档 - Part1-1 SiriKit介绍
SiriKit官方文档 - Part1-2 创建一个Intents扩展
SiriKit官方文档 - Part1-3 解决和处理意图
SiriKit官方文档 - Part1-4 指定自定义词汇
SiriKit官方文档 - Part1-5 创建Intents UI扩展
SiriKit官方文档 - Part2-1 参考-意图域
SiriKit官方文档 - Part2-2 参考-App词汇文件格式