美文网首页
Siri shortcuts 快捷操作,智能家居快捷控制示例

Siri shortcuts 快捷操作,智能家居快捷控制示例

作者: 奥利奥泡泡 | 来源:发表于2019-06-27 18:10 被阅读0次

Siri shortcuts

这东西说难吧,一开始接触还真不好处理,但是理解后,也就那样。

添加intents.intentdefinition

名字自己取,自己喜欢就好

新建custom intents

添加你的intent所含有的参数,如果需要在Siri执行快捷操作时发起交互确认,就勾选User confirmation required。完成添加后编译一下,会生成一个文件,看不到,但实际存在。

新建Intent target和IntentUI target

在新建Intent target时可以一次性将IntentUI target也建好。创建好两个target后,会生成IntentHandler及IntentViewController文件。

创建自己的IntentHandler类,并实现对应的IntentHandling协议

以下DeviceControlIntentHandler代码已完全贴出,虽然对各位没有任何用处,但有助于代码阅读。

强调一遍,勾选这个类适用的target

在IntentHandler中的handlerForIntent方法中,判断需要进入自己自定义的哪种意图,对应意图实现我自己的已经代码贴出,各位自己想怎搞就怎搞!

到此就结束了?并没有,我们要添加和管理意图信息,每个地方调用都把代码写一遍,显然不合理。故将系统方法二次封装,写成自己的工具类。具体代码就不贴了,就是把系统方法封装处理了一下。

好了,到这里就差不多了!

No!

肯定有人会问,你们公司的BLLet库是怎么在Intent中使用的?

我想在Intent中使用第三方库怎搞?我想使用工程里的pch文件怎搞?把自己的爬坑心得在这里表述一下。

多个target同时使用同一个第三方库

使用已有的pch文件

阶段性总结一下:给系统添加快捷操作并不难,坑点在于如何让你的类文件在多个target中同时可以引用。

好吧,忘了很重要的一件事,就是数据库是怎么让Siri执行意图时读到的?

首先要在对应target的Capabilities中打开App Groups选项,groupid要提前在开发者网站上对应的appid下建好

该共享路径是怎么获取呢?

如图,该id即为你创建的groupid,我这边的groupid在上图被我马赛克干掉了。

如果不想用数据库,只是一些简单的字符串什么的持久化存储,那可以用NSUserDefaults

如此,Siri快捷需要用到的操作应该都描述完了。

最后总结:

1.各个类在多个target中的引用需要注意勾选

2.第三方库的引用需要在podfile中添加好才可使用

3.pch文件的使用,需要在对应target中添加好

4.共享存储空间的使用,设置App Groups打开,及设置groupid,这里可以存放数据库等一系列文件

5.一般数据的持久化,使用NSUserDefaults就可以。

好了,到此结束!有疑问的,或觉得我这边写的有问题的,可及时沟通,谢谢!

相关文章

网友评论

      本文标题:Siri shortcuts 快捷操作,智能家居快捷控制示例

      本文链接:https://www.haomeiwen.com/subject/lsnrcctx.html