我希望我的应用能够了解由 HomeKit 配件 (HMAccessory) 触发的事件。这样,当我的 HomeKit 驱动的运动检测器检测到运动时,我的应用程序就会以某种方式了解这一点(最好通过推送通知)。预装的 Home 应用似乎具有此功能。有没有办法使用 HomeKit 框架完成这项工作?
我找到的最近的是 HMCharacteristic :
func enableNotification(Bool, completionHandler: (Error?) -> Void)
但这不会产生推送通知并通过委托(delegate)回调传递更新(并且仅在应用程序处于前台时有效)。
Best Answer-推荐答案 strong>
很遗憾,我必须同意 Jeff Z 的观点。不可能直接这样做。
根据我的调查,然后作为推送通知“发布”的附件事件似乎是 Apple 的 Home 应用程序的一项功能,当它在 iPad、AppleTV 上设置为“Home Hub”模式时,很快就会成为 HomePods .它仅适用于门、锁和其他一些附件类型的简短列表。 (我仍在 Apple Docs 中寻找最终列表)这些通知被定向到 Home 应用程序,其他应用程序无法使用。
如果这是供您个人使用,您可以设置自定义附件作为服务,在家庭自动化触发时发送推送通知。
有一个 Javascript/Node.js 项目 homebridge它实现了家庭附件协议(protocol) (HAP),并允许您在家庭网络中建立可定制的 HAP 服务。
一般的做法是:
- 在您的家庭网络上安装 homebrige 服务器。无论是在
始终开启的计算机或获取专用于此的 Rasberry Pi
目的。
- 安装homebridge-pushed-notification插入
并将其配置为使用您的 GetPushed 应用程序。
- 在您的家庭应用程序中建立一个自动化,当从您的现成附件收到事件时,启动您在 2 中设置的推送通知。
这会向 GetPushed 应用发送通知。但总体大纲可能适用于其他推送服务,例如 Firebase Cloud Messaging。
关于ios - 由于 HomeKit 配件中的事件而推送通知,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/43816900/
|