作者:霹靂一頁書_629 | 来源:互联网 | 2023-10-10 19:41
iOS 10,其中一个亮点,SiriKit。让App与Siri之间可以通过Extension来进行交互。
看一下相关术语:
-
Intent:意图
-
Domain:领域
简介
Siri通过用户语音识别出Intent,App通过Intent做出对应的反应。7个领域共包含22个意图,Siri现在只支持22个意图:
-
语音通话 VoIP Calling:打电话、发起视频电话、查通话记录
信息 Messaging:发信息、搜索信息
照片搜索 Photo Search:搜索照片、播放照片幻灯片
个人之间的付款 Payments:向某人付款、向某人收款
健身 Workouts:开始健身、暂停健身、恢复健身、结束健身、取消健身
打车 Ride Booking:查看附近可用的车辆、订车、查看订单
车载 CarPlay:切换音频输入源、空调、除霜、座椅加热、FM调台
App若有相应的能力,可以通过Siri来进行一些交互
交互
通过开发App Extension进行与siri的交互,接收Siri分手确认后的Intent,根据Intent来做逻辑处理
并支持在siri上显示自定义UI
两个框架:
Intents
-
Intent对象:对应INIntent类,22个意图对应22个INIntent的子类
-
Handler对象:处理来自Siri的Intent,一个Handler对应多个Intent,一个Intent只由一个Handler处理。
-
IntentHandling协议:22个意图对应22个协议,每种协议控制处理Intent的各个过程
-
Response对象:依然是各自Intent对应各自Response。代表Handler阶段的处理结果
IntentHandling
处理来自Siri的Intent,三个阶段
-
一:解析阶段,此阶段的方法均已resolve开头
-
二:确认阶段,此阶段的方法以confirm开头
-
三:处理阶段,完成我们对应的服务
IntentsUI
还是使用UIKit,可以理解为在siri可以自定义UI,但是一定要注意,我们的自定义界面是无法接收和响应任何的touch信息,所以说,紧紧就是做展示作用。
Intents UI Extension 入口为实现INUIHostedViewControlling协议的VC,
INUIHostedViewControlling协议:
- (void)configureWithInteraction:(INInteraction *)interaction context:(INUIHostedViewContext)context completion:(void (^)(CGSize desiredSize))completion;
官网给出的生命周期很详细:
资料
22个意图对应的描述