【发布时间】:2020-02-11 10:53:25
【问题描述】:
我正在开发一个 Flutter 插件,用于访问我的 Flutter 应用程序中的 Apple HomeKit 功能。在flutter文件夹中为iOS项目完成以下项目和代码设置:
项目设置: 1. 功能中启用 HomeKit 2. 增加隐私 - Info.plist 中的 HomeKit 使用说明键
插件内的代码设置:
1.创建HMHomeManager的实例
2.设置HMHomeManager委托
3. 实现委托方法
另外,在“设置”中交叉验证了我的 Flutter 应用对 HomeKit 的访问权限。
问题 1:
对于相同的设置,本机 iOS 应用程序运行良好,homeManagerDidUpdateHomes 委托方法在访问正确提供 Home 信息的 HomeKit 数据库后立即被调用。
但是,在 Flutter 插件中,委托方法不会被调用,并且 home 计数始终为零。
问题 2:
我已经编写了代码来在 iOS 插件中添加新的 HomeKit Home,并尝试从 Flutter UI 中调用该方法。奇怪的是,addHome(withName: ) 块内的代码没有执行,但 Home 正在 HomeKit 数据库中创建。这可以通过运行 Apple“Home”应用程序来确认。
在这种情况下,homeManager(didAdd home: ) 委托方法也不会被调用。
版本详情: Xcode:11.2,快速 4.2 颤振:1.14.6,飞镖:2.8.0
是否需要在flutter插件中进行任何其他设置才能设置HomeKit Delegate?
作为替代方法,还尝试使用 cupertino_ffi_generated 0.1.1 (https://pub.dev/packages/cupertino_ffi_generated),这是来自 Flutter 的用于访问 Apple API 的最新软件包。 (尽管直接提到:“大多数 Flutter 开发人员不应该使用这个包。编写 Flutter 插件几乎总是比使用这个包更好。”)。 但是,flutter 会抛出错误“URI 的目标不存在:”
版本详情: 颤振:1.14.6,飞镖:2.8.0
【问题讨论】:
标签: ios swift homekit flutter-plugin