iOS10 SiriKit

苹果在 iOS10 开放了 SiriKit 接口给第三方应用。目前,QQ已经率先适配了 Siri 的发消息和打电话功能。这意味着在 iOS10 中你可以直接告诉 Siri 让它帮你发QQ消息和打QQ电话了,听起来是不是很酷炫?

那么第三方应用使用 Siri 的体验究竟如何?哪些应用可以接入SiriKit?接入 SiriKit 又需要做哪些工作呢?

一.核心
siri接收的信息:AppName + Intent + Recipient + Content 
其中AppName + Intent 是必须的,
不然 Siri 无法抽象出你的“Intent”。后两项如果缺省的话,我们可以在实现中要求用户进一步提供数据或者忽略。在识别完成后 Siri 会将消息内容和接收者抽象成一个 INSendMessageIntent 传递给 App的 Intent Extension。

二. Siri接收信息到执行的过程
每个domain的功能在Siri中都有对应的Intents,而每个Intents都对应一个特定的handler协议。对应的Intent和handler协议分别为INSendMessageIntent和INSendMessageIntentHanding。
所以:只要实现INSendMessageIntentHanding协议的相关方法,并在Siri解析中INSendMessageIntent请求时用我们的INSendMessageIntentHanding对象去处理相关的信息请求就OK。

过程:(1)Siri获得Intent后SiriKit处理有:1. Resovle Recipient; 2.Resovle Content; 3.Resolution Result 。 (2)通过SiriKit处理完Resolution Result后Intent UI Extension处理Intent逻辑:1.Confirm SendMessage;2.Handle SendMessage。
通过(1)和(2)的处理SiriKit已经完成了Intent的处理,如果是SendMessage的话,Message SDK就会Send Message了。

三. Intents UI Extension
对于支持自定义界面的 Intent 类型,可以在 Intents UI Extension 中提供更美观的自定义界面。 Custom UI 的实现相对较简单,和 iOS app 的开发一样,都是通过 UIViewController 的子类实现。我们需要在 Intents UI Extension 的 info.plist 文件中设置 initial viewcontroller 或者设置 main storyboard,对于不同类型的 Intent 的界面展示通过 Child Viewcontrollers 的方式实现差异化界面展示。
 三个重要的方法:
(1)configureWithInteraction:context:completion:
(2)viewWillAppear:viewDidAppear:
(3)viewWillDisappear:viewDidDisappear: 
 

四.总结
总的来说虽然苹果这一次对 SiriKit 开放的场景有限,但是从我们的适配经历来看苹果对 Siri 还是非常重视的。另外,这是 SiriKit 首次对第三方应用开放接口,所以不可避免存在一些问题。在语言识别方面 Siri 依然存在一些缺陷,比如对中英文混合的场景识别依旧不太好。期待以后 Siri 对中文的支持越来越好,也希望 Siri 能够开放更多的场景给第三方应用适配。 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值