返回博客首页
← 所有文章

HomeKit 和 NativeScript 入门

2017年1月16日 — 作者:Eddy Verbruggen

HomeKit Logo

"嘿Siri,关掉楼上的灯"
"嘿Siri,打开车库门"
"嘿Siri,派对时间!"


能够对你的手机说出这些话,并让它完成你关联的任务,是不是很酷炫的2017年体验?


让我们看看苹果的 HomeKitNativeScript HomeKit 插件

HomeKit 是什么?

HomeKit 是苹果连接你所有(兼容的)家庭自动化设备的网关。你可以使用 iOS 设备上的 Home 应用来控制它们,或者像个酷炫的小孩一样,使用新发布的 NativeScript HomeKit 插件构建自己的应用程序。你是一个酷炫的小孩,对吧?

是的,但是…我没有 HomeKit 设备

不用担心!只需下载HomeKit 模拟器,它是硬件 IO 工具的一部分,打开下载的模拟器,然后按照此图片所示添加一个新的配件 - 现在你就可以开始构建和玩耍了!

HomeKit Simulator

只想玩玩 {N} HomeKit 应用?

访问插件的 GitHub 仓库,并按照如何在手机上部署演示应用程序的说明进行操作。这是演示应用程序的运行效果

首先:创建家庭

顾名思义,HomeKit 围绕着(一个或多个)家庭展开,所以我们需要从这里开始。让我们使用 TypeScript,因为此插件公开了方便的 TS 包装器类,如 Home、Room、Zone、Accessory 和 Service。

gist: homekit-creating-homes.ts

请注意,与您提供给 HomeKit 的任何实体一样,Home 会保存到设备上的 HomeKit 数据库中,并与连接到同一 Apple ID 的其他 iOS 设备共享。

向家庭添加房间

如上面的演示应用程序视频所示,您可以向家庭添加房间。配件(HomeKit 兼容设备)可以添加到家庭或房间中。

gist: homekit-adding-rooms.ts

您还可以向家庭添加“区域”(楼上、楼下、花园)并将多个房间分配到一个区域。一旦您了解了如何使用房间,它就会变得非常容易 - 阅读插件文档以获取详细信息和代码示例。

搜索和分配配件

要将配件添加到家庭或房间中,我们首先需要“搜索”它们。找到后,我们可以将其分配给家庭。为简洁起见,此处未显示分配到房间的操作。

gist: homekit-searching-and-assigning-accesories.ts

使用服务和特性

配件具有服务。车库门开启器可能具有一项服务来实际打开或关闭车库门。服务具有特性(当前门状态)。这两个都可以使用插件进行查询

gist: homekit-listing-services-and-characteristics.ts

下一步做什么?

要进一步与此处显示的任何类(Home、Room、Zone、Accessory、Service 和 Characteristic)进行交互,插件在所有这些类上都公开了 ios 属性。插件文档链接到这些属性所表示的原生类,以便您可以调用应用程序可能需要的任何其他函数。

您是否在插件的分支中添加了其他人可能也认为有用的功能?与往常一样,请提交拉取请求