Siri快捷方式入门

Apple的iOS 12新功能

嗨,我很愿意。 今天,我们正在使用SIRIKIT探索SiriShortcuts

要求:

Swift 4中级知识

知道如何玩MVC

Xcode 10

Apple付费开发者帐户。

物理iPhone会更好(不是必需的)

你不需要火箭科学😉

这是Apple在iOS 12上的新功能,在WWDC 2018主题演讲中宣布,并将在今年秋天推出…因此,最好准备好您的应用程序,以便您的用户尽快使用它们。 我非常确定,他们会赞赏的,因为它确实确实可以使生活变得更轻松-特别是如果您添加了经常使用的快捷方式,并且所有这些操作都可以直接在锁定屏幕,搜索或Siri中完成,表盘。

Siri可以使用诸如位置,一天中的时间和运动类型(例如步行,跑步或驾驶)之类的信号来建议快捷方式,并在锁定屏幕上显示为用户可以点击以运行任务的通知。 不必担心您的隐私-所有收集的数据都存储在设备上,因此不会受到任何损害。

可以从新的Shortcuts应用程序中可用的示例库中添加快捷方式。开发人员可以创建其自定义快捷方式,并将其与应用程序一起提供。 在这个故事中,我将向您展示如何创建简单的自定义快捷方式:—)

让我们开始吧!

我假设您创建了一个空项目

  1. 添加SiriKit意向定义 文件

该文件就像我们正在创建的“心脏”。因此,您可以试用此文件以获得所需的响应。

2.打开somename .intentdefinition,然后添加New Intent,为其命名,然后设置。重要部分是“ 参数快捷方式类型”
快捷方式类型的 标题/副标题将显示为Siri结果。

新意图—一个应用程序可能包含许多意图和快捷方式。因此,所有意图均在此处创建。

每个意图都有自己的参数,这些参数是用户定义的。我们可以在使用siri快捷方式时传递这些参数。

3. 快捷方式类型的 标题/副标题将显示为Siri结果。

在这里,可以根据需要选择参数的数据类型。可以根据需要将这些参数传递给Title来调用函数。请确保遵循MVC(模式视图控制器)模式。

4.不要忘记设置响应, 响应 模板中的模板将再次显示为Siri结果。

5.创建新的目标选择 意图扩展意图UI扩展。

Intent Extension与您的Intent定义文件绑定以处理数据

使用Siri快捷方式时,Intent UI Extension将提供一些UI

4.1。表达你的意图。

现在,我们需要让系统知道用户何时在我们的应用程序中执行“应用程序的特定功能”交互。 根据用户执行此操作的频率以及一天中的什么时间等,Siri随后将向用户建议此交互。 但是,用户也可以自己访问这些快捷方式。 在ViewController.添加捐赠代码ViewController.

5.在您的应用程序目标中创建IntentHandler类, NSObjectIntentHandling的子类也在Inspectors中选择Target IntentIntentUI

6.更新Intent / IntentHandler.swift文件以处理您的Intent 您的IntentHandler 。此文件将调用一个函数来满足语音命令发出的请求。这里的参数是从intent处理程序中提取的,因此可以在调用函数时作为参数传递

7.创建ModelManager类 。这将允许您在意图处理程序和应用程序组之间传递数据。 确保在项目中启用了应用程序组

8.在configureView方法中更新IntentUI / IntentViewController.swift,您可以从interact.intentResponseinteraction.intentResponse获取Intent

更新此文件将启用Siri快捷方式上的交互。请确保您具有良好的UI进行交互。

9,所有设置,但最后但并非最不重要

在“确认”部分中,尝试显示订单确认视图,当Siri订购Soup Chef App时,也尝试在代码中显示发票,但两者均未显示在Siri屏幕中。 您可以在Siri响应文本中看到[object Object] ,这意味着Response中不支持Decimal

让我们运行应用

如您所见,我们在Siri建议中看到了我们的快捷方式

当我们单击它时,

它计算出牛奶中的卡路里(不准确),并显示在intentUI中

当我单击添加时,

由于我们在意图定义文件中添加了响应框架,因此出现了此消息。

所以差不多了。

因此,现在您可以构建一个独立的Siri快捷方式。 显然,这是一种非常简单的方法,可以很容易地在内部完成。 无论如何,我希望这对您有所帮助,并且您喜欢这次旅行。