转载

SiriKit 描述

iOS 10,其中一个亮点,SiriKit。让App与Siri之间可以通过Extension来进行交互。

看一下相关术语:

  • Intent:意图

  • Domain:领域

简介

Siri通过用户语音识别出Intent,App通过Intent做出对应的反应。7个领域共包含22个意图,Siri现在只支持22个意图:

  • 通话服务:打电话、查通话记录

  • 消息短信:发信息、搜索信息

  • 照片搜索:搜索照片、播放照片幻灯片

  • 个人支付:收付款

  • 打车服务:查看附近车辆、订车

  • 健身任务:任务开始、暂停、继续、取消、结束

  • 车载控制:切换音频、空调、除霜等等

App若有相应的能力,可以通过Siri来进行一些交互

交互

通过开发App Extension进行与siri的交互,接收Siri分手确认后的Intent,根据Intent来做逻辑处理

并支持在siri上显示自定义UI

两个框架:

  • Intents框架,用于开发服务型扩展“Intents Extension”。在此扩展中,完成与Siri的交互,并处理相应的工作。

  • IntentsUI框架,用于开发UI型扩展“IntentsUI Extension”。在此扩展中,自定义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开头

  • 三:处理阶段,完成我们对应的服务

SiriKit 描述

IntentsUI

还是使用UIKit,可以理解为在siri可以自定义UI,但是一定要注意,我们的自定义界面是无法接收和响应任何的touch信息,所以说,紧紧就是做展示作用。

Intents UI Extension 入口为实现INUIHostedViewControlling协议的VC,

INUIHostedViewControlling协议:

- (void)configureWithInteraction:(INInteraction *)interaction 
                         context:(INUIHostedViewContext)context 
                      completion:(void (^)(CGSize desiredSize))completion;

官网给出的生命周期很详细:

SiriKit 描述

资料

22个意图对应的描述


正文到此结束
Loading...