Part1: SiriKit 介绍
在这里放出原文链接地址
Part 1.1 SiriKit 介绍
SiriKit
可以使你的 App 和 App 提供的服务与系统进行结合, 从它的名字就可以看出它和Siri
有着密不可分的联系, 它可以让用户仅仅使用自己的声音就可以来控制你 App 的行为.
SiriKit
由两个 Framework
组成, Intents Framework
可以使系统和你的 App 建立联系. 你可以使用它来定义你需要执行的任务的类型, 并且在特定的时刻来执行这些任务. Intents UI Framework
则允许你执行任务时提供一些自定义的 UI 界面.
SiriKit
的支持被分为了几种领域, 每一种场景都定义了一个或多个可以执行的任务. 为了可以支持 SiriKit
, 你的 App 必须属于以下几种领域:
- 网络电话 (VoIP calling)
- 消息 (Messaging)
- 支付 (Payments)
- 图片 (Photo)
- 健身 (Workouts)
- 旅行预订 (Ride booking)
- CarPlay
- 餐厅订位 (Restaurant reservations, 该领域需要额外的来自苹果的支持)
每一种场景都定义了一个或多个可以执行的任务, 这些任务我们将它称之为 Intents
, 因为它描述的其实就是用户意图和目的, 每一个Intent
都被抽象成为了一个类, 这个类中的属性包含了相关的信息. 例如: 支付( Payments )领域, Intent
包含了支付金额和交易人等的信息. 当用户对Siri
说出了他的请求后, 系统将会用 Siri
通过自然语言解析出来的数据对一个相应的Intent
对象进行数据的填充, 然后将这个 Intent
对象递交给你的 App 扩展. 你的任务则是验证Intent
对象中数据的准确性, 然后执行相关的任务即可.
获取更多 Intent
相关内容, 请查看: Intents Domains
获取更多 Intent Framework
相关内容, 请查看Intents Framework Reference
Part 1.2: Intents 和 Intents UI App Extensions
可以通过添加以下这两种类型的Framework
来对SiriKit
进行支持:
-
Intents Extension
: 该扩展是必须添加的. 该扩展会从系统接收相应的Intent
对象, 并对其相关的任务进行处理. -
Intents UI Extension
: 该扩展是可选的. 该扩展允许你为用户提供自定义的 UI 界面.
系统只有在需要用到它们的时候才会运行它们, 所有支持SiriKit
的 App 都必须有一个Intents Extension
. 然而给用户提供一个自定义的 UI 界面, 将会给用户更好的使用体验.
Part 1.3: Siri 和 Maps 是如何处理请求的
Siri
和 Maps
会将用户的请求分解成一些需要的数据, 将这些数据转换为一个 Intent
对象, 然后你来处理Intent
对象关联的相关任务. 就Siri
而言, Siri
通过自然语言解析, 将用户说出来的话解析成为一些可用的数据, 使用这些数据来填充一个 Intent
对象. 但是解析出来的数据可能会不够或不准确, 所以Siri
需要你提供的Intent Extension
来对数据进行验证, 让你来确认数据是否完整, 确认数据是否是你想要的, 并且确认你是否明白了用户的意思. 在这个确认阶段, 你可能需要让Siri
帮你从用户那里获取更进一步的信息, 以确保你可以更精准的捕获用户的意图. 在整个确认的过程中, Siri
负责了所有与用户的交互, 你只需要专心于数据的验证就可以了.
Lemon龙说:
如果您在文章中看到了错误 或 误导大家的地方, 请您帮我指出, 我会尽快更改
如果您有什么疑问或者不懂的地方, 请留言给我, 我会尽快回复您
如果您觉得本文对您有所帮助, 您的喜欢是对我最大的鼓励
如果您有好的文章, 可以投稿给我, 让更多的 iOS Developer 在简书这个平台能够更快速的成长