从 SiriKit 到 Siri Shortcuts
Apple 在 WWDC 2016 上推出了 SiriKit,使得开发者可以开发 app extension 让用户可以利用 Siri 完成特定的几种任务。这里有两个基本概念:
- Domain:任务的类型,比如消息、VoIP、支付、运动、打车、搜索照片等
- Intent:使用 Siri 完成的具体任务,比如发红包、发消息
Siri 会完成自然语言处理,理解用户的意图,并决定什么时机来调用我们的 app extension,我们只需要告诉 Siri 是否可以处理这个 intent 并完成就可以了。Apple 为各个 domain 的 intents 提供了协议作为模板供开发者实现,以发送信息为例:
当用户想用 Siri 发送消息时,系统会创建一个 INSendMessageIntent
,里面包含消息接受者、消息内容等信息,然后调用 app extension 的 handler,handler 解析这些上下文,确认可以处理并发送完消息后返回 INSendMessageIntentResponse
类型的结果。
在 WWDC 2018 上,Apple 推出了 Siri Shortcuts 进一步拓展了 Siri 的使用场景。Siri Shortcuts 能让用户通过一句自定义的短语让 Siri 完成自己经常进行的动作,比如查看今天的天气,叫一份外卖。与 SiriKit 最主要的不同点有两个:
- 只针对具体的动作,不需要用户提供信息。可以理解成类和实例的关系。我们用 SiriKit 来打车,每次的出发地和目的地都不一样;而 Siri Shortcuts 只完成打车回家这个具体的动作,永远是从当前位置到家里,用户也就不需要再告诉 Siri 出发地和目的地。
- 可以用 Siri Shortcuts 完成的动作不限于 SiriKit 的几个 domain。Siri Shortcuts 可以理解成为特定动作设置的一个快捷方式,因为 Siri Shortcuts 不涉及语义分析,也就不用对实现的动作做限制。