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开头
  • 三:处理阶段,完成我们对应的服务

sirikitsirikit11111111

IntentsUI

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

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

INUIHostedViewControlling协议:

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

siri2sirikitsirikitsirikit

资料

22个意图对应的描述

打赏支持我写出更多好文章,谢谢!

打赏作者

打赏支持我写出更多好文章,谢谢!

任选一种支付方式

1 1 收藏 评论

关于作者:Lastdays

你知道白菜吗?我就是那个猪 个人主页 · 我的文章 · 3 ·   

可能感兴趣的话题



直接登录
跳到底部
返回顶部