在這里放出原文鏈接地址
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 在簡書這個平臺能夠更快速的成長