版本记录
版本号 | 时间 |
---|---|
V1.0 | 2018.09.11 |
前言
大家都知道随着人工智能的发展,会掀起来另外一个工业革命,而语音识别就是人工智能的初始阶段,但是每个公司做的都不一样,涉及到一系列的语音的采集和算法实现,苹果的Siri就是业界语音识别的代表性的产品。接下来的几篇我们就详细解析一下SiriKit这个框架。感兴趣的可以看下面几篇文章。
1. SiriKit框架详细解析(一)—— 基本概览(一)
2. SiriKit框架详细解析(二)—— 请求授权使用SiriKit和INPreferences类(一)
Overview
与SiriKit的交互通过您的Intents
应用扩展程序进行,您可以在iOS或watchOS应用程序包中进行。 Intents app
扩展程序处理与SiriKit的大多数交互,但您的应用程序需要了解这些交互,并且在某些情况下可能会在实现这些交互时发挥积极作用。
配置Xcode项目需要几个步骤。 除了向项目添加Intents
应用扩展目标外,您还必须对应用进行一些小的更改。
Enable the Siri Capability - 打开Siri
启用Siri功能可为您的应用添加一组权利。 App Store要求任何包含Intents扩展程序的iOS应用程序或watchOS应用程序都存在这些权利。
在Xcode中打开您的应用程序项目。
- 1) 在项目设置中,选择适当的目标。 (对于iOS,请选择您的iOS应用目标。对于watchOS,请选择您的WatchKit扩展目标。)
- 2) 选择
Capabilities
选项卡。 - 3) 启用
Siri
功能。
Add an Intents App Extension to Your Project - 为您的项目添加Intents App扩展
添加Intents
应用程序扩展目标提供了构建Intents扩展所需的初始文件,并配置您的Xcode项目以构建该扩展并将其包含在您的应用程序包中。
- 1) 在Xcode中打开现有的应用程序项目。
- 2) 选择
File > New > Target
。 - 3) 从iOS或watchOS平台的
Application Extension
组中选择Intents
扩展。 - 4) 点击下一步。
- 5) 指定扩展名称并配置语言和其他选项。
- 6) 对于iOS应用程序,如果您计划自定义Siri界面的某些部分,请启用包含
UI Extension
选项。 - 7) 单击完成。
注意:您可以向应用添加多个Intents扩展,但每个扩展必须支持不同的
intents
。 仅当这样做可以提供性能优势或减少每个扩展的内存占用时,才创建多个扩展。
Specify the Intents that Your Extension Supports - 指定扩展支持的Intents
将Intents
扩展目标添加到项目后,配置Xcode提供的默认Info.plist
文件以指定您支持的意图。 SiriKit使用扩展程序的Info.plist
文件中的信息来确定要路由到您的扩展程序的意图。
- 1) 在Xcode中,选择
Intents app
扩展的Info.plist
文件。 - 2) 展开
NSExtension
和NSExtensionAttributes
键以显示IntentsSupported
键(iOS和watchOS)和IntentsRestrictedWhileLocked
键(仅限iOS)。 - 3) 在
IntentsSupported
键中,为扩展程序处理的每个intent
添加一个String
项。将每个项的值设置为intent
的类名。 - 4) 在
IntentsRestrictedWhileLocked
项中,为要求解锁设备的每个intent添加一个String项。将每个项的值设置为intent的类名。
在iOS中包含IntentsRestrictedWhileLocked
键是可选的。您可以使用它来扩充需要解锁设备的意图列表。某些意图(例如涉及金融交易的意图)总是要求解锁用户的设备。对于这些意图,Siri会自动要求用户解锁设备,无论您是否将其包含在IntentsRestrictedWhileLocked
键下。在watchOS
中,所有意图都要求解锁设备。
重要:您在watchOS应用中支持的意图必须是您在iOS应用中支持的意图的子集。 换句话说,iOS应用中的Intents扩展必须能够处理watchOS应用中Intents扩展所处理的所有相同意图。 在watchOS应用程序中支持意图但在iOS应用程序中没有支持意图这是一种程序的错误。
当用户的话语模糊以至于它解析为多个意图时,SiriKit会使用IntentsSupported
键中的意图顺序来确定发送给您的应用的意图。 通过将最相关的那些放在数组前面,先组织您的意图列表。 当Intents扩展支持具有相似语义的多个域时,优先考虑意图尤其重要。 例如,支持电话和消息传递意图的应用程序可能会选择通过发起呼叫来优先发送消息。
某些意图可能需要为您的Xcode项目或您的应用程序执行其他配置步骤。 例如,在实施乘车预订应用程序时,Maps
希望您提供描述服务的覆盖范围的GeoJSON
文件。 有关任何特殊要求的信息,请参阅参考文档。
测试你的Intents App扩展
Xcode支持直接从Xcode项目启动Intents app
扩展,并在模拟器或设备上运行时对其进行调试。 要运行和调试Intents扩展:
- 1) 选择
Intents
扩展的构建方案。 (在创建Intents扩展目标时,Xcode会自动为您创建构建方案。) - 2) 选择运行代码的
target
(模拟器或设备)。 - 3) 选择“产品”>“运行”以开始调试会话。
- 4) 当Xcode提示时,选择
Siri
或Maps
作为要运行的主应用程序。 Xcode构建您的应用和扩展程序,将它们安装在设备上,然后启动您选择的应用程序。
首次安装扩展程序时,Siri可能无法立即识别您的应用程序扩展程序,您可能需要等待几分钟才能发出任何相关命令。 同样,在更新扩展程序的Info.plist
文件时,您可能需要等待几分钟,然后Siri才能识别出任何更改。
后记
本篇主要讲述了创建Intents App扩展,感兴趣的给个赞或者关注~~~