iOS Siri Shortcuts 集成初探 (Objective-C)

关于iOS端集成Siri Shortcuts网上看了很多都是Swift的教程,苹果官方给的例子代码也是Swift的,不熟悉Swift的人看起来还是有点困惑,今天给大家介绍下关于怎样集成基于Objective-C的Siri Shortcuts,简单粗暴。

先看一些基本的概念吧,首先创建一个Siri Shortcuts有两种方式,分别是:

创建Siri Shortcuts 方式

NSUserActivity的方式比较粗,而且不够精确优雅,这里不作讨论,有兴趣的同学可以去看苹果官方文档和视频这里重点介绍下Intents的方式。

Intents创建Siri Shortcuts大致步骤如下:

创建步骤



0. 准备

打开主target的SiriCapabilities


添加Intents Extension

File -> New -> Target -> Intents Extension



1. Define Shortcut

添加Intents文件

File -> New -> File..., 选择 SiriKit Intent Definition File


配置Instents文件

点击左下角加号 -> New Intent -> 命名(XXXname,我这里用的BreakFast)

填写Title和Description, Intent和Response分别有对应的Title和Description, 另外Response中配置的模板编译成功后会生成相应的API,下文会提到(截图BreakFastHandler.m)。

选择Category为Order(Category有很多种,不同的Category在和Siri交互的时候有不同的文字提示,按钮样式和语音提示,请看官方介绍)


编译

编译成功后会自动生成对应的一系列类和方法,后面会用到,这里需要注意的是Objective-C在Import对应的类可能没有提示,一般不用管直接import就行了,类名就是XXXnameIntent、XXXnameHandler等等,可以在Macintosh HD⁩ ▸ ⁨Users⁩ ▸ ⁨ ▸ ⁨Library⁩ ▸ ⁨Developer⁩ ▸ ⁨Xcode⁩ ▸ ⁨DerivedData⁩ ▸ ⁨ ▸ ⁨Build⁩ ▸ ⁨Intermediates.noindex⁩ ▸ ⁨.build⁩ ▸ ⁨Debug-iphoneos⁩ ▸ ⁨.build⁩ ▸ ⁨DerivedSources⁩ ▸ ⁨IntentDefinitionGenerated⁩ ▸ ⁨Intents⁩中看到,也可以在右边栏中找到如图

查看编译后的头文件名称


指定Target

苹果官方推荐的使用方法是提取一个公共的framework,方便extension和target使用

指定target
官方推荐做法和常规做法


修改plist

准备阶段创建的Extension文件夹下的Info.plist文件,如下图

修改plist



2. Donate Shortcut

在任何合适的地方Donate Shortcuts给系统,代码如下:

Donate和设置语音



3. Handle Shortcut

新建一个BreakFastHandler继承自NSObject,用于接收我们自定义的Intent


BreakFastHandler.h
BreakFastHandler.m

在Extansion目录下IntentHandler.m中把我们的Handler加进去

IntentHandler

done~

Intent方式优点

1.不用打开App也能以多种方式交互

2.自定义交互的声音和UI

3.可以智能推荐,比如在某个特定的时间和地点推荐特定的Shortcuts(市场上很多App都可以做这一块的功能但是都没做)

这里需要注意的是Siri Shortcuts虽然很棒但是不能滥用哦。

欢迎小伙伴们在评论区交流~

你可能感兴趣的:(iOS Siri Shortcuts 集成初探 (Objective-C))