我正在开发一个颤振插件,用于访问我的颤振应用程序中的苹果HomeKit功能。下面的项目和代码设置是为颤振文件夹中的iOS项目完成的:
项目设置:1.在功能中启用HomeKit 2.在Info.plist中添加了隐私- HomeKit使用描述键
代码安装插件:1.创建HMHomeManager 2的实例。设置HMHomeManager委托3.实现委托方法
另外,交叉验证了设置中我的颤振应用程序对HomeKit的访问。
问题1:对于相同的设置,本地iOS应用程序运行良好,而homeManagerDidUpdateHomes委托方法在访问HomeKit数据库后立即被调用,该数据库正确地提供了HomeKit信息。但是,在颤振插件中,委托方法不会被调用,而且主计数总是为零。
Issue2:我编写了在iOS插件中添加新的HomeKit Home的代码,并尝试从flutter调用该方法。奇怪的是,addHome(withName: )块中的代码没有执行,但是Home是在HomeKit数据库中创建的。运行Apple‘Home’应用程序证实了这一点。在这种情况下,也不调用homeManager(didAdd home: )委托方法。
版本详细信息: Xcode: 11.2,快速4.2颤振: 1.14.6,Dart: 2.8.0
在颤振插件中是否需要其他设置来设置HomeKit代理?
作为一种替代方法,还尝试使用cupertino_ffi_generated 0.1.1 (https://pub.dev/packages/cupertino_ffi_generated),这是最近用于访问Apple的flutter的一个软件包。(尽管它被直接提到:“大多数开发人员不应该使用这个包。几乎总是一个更好的主意编写一个颤振插件比使用这个软件包。”)但是,抛出错误的颤振“URI的目标不存在:”
版本详细信息:颤振: 1.14.6,Dart: 2.8.0
发布于 2020-02-22 12:24:14
我也面临着一个类似的问题。未触发iOS快速委托方法。看来这些方法必须是公开的。
只需替换
func addHome...使用
public func addHome...也许它能帮到某人..。
https://stackoverflow.com/questions/60167236
复制相似问题