我正在创建一个从iOS到React Native for HomeKit的桥梁。我目前才刚刚开始,只是尝试为测试目的创建一个主页。我已经成功地接受了HomeKit的权限,就像在info.plist aka NSHomeKitUsageDescription中设置的那样。
RNHomeKit.m
#import "RNHomeKit.h"
#import <HomeKit/HomeKit.h>
#import <React/RCTLog.h>
@implementation RNHomeKit
RCT_EXPORT_MODULE();
RCT_EXPORT_METHOD(createHome) {
RCTLog(@"FAKELY CREATING HOME");
HMHomeManager *myHomeManager = [[HMHomeManager alloc] init];
[myHomeManager addHomeWithName: @"Matt's Awesome Home" completionHandler:^(HMHome *home, NSError *error) {
RCTLog(@"REALLYING CREATING HOME");
if (!error) {
RCTLog(@"Created Home : %@",home.name);
} else {
RCTLog(@"Error: %@", error);
}
}];
}
@endRNHomekit.h
#import <Foundation/Foundation.h>
#import <HomeKit/Homekit.h>
#import <React/RCTBridgeModule.h>
@interface RNHomeKit : NSObject <RCTBridgeModule>
@end我使用createHome在主屏幕的componentDidMount()上调用我的RNHomeKit.createHome();方法。FAKELY CREATING HOME正在被记录,而REALLYING CREATING HOME却从未被看到。为什么我不打addHomeWithName
发布于 2017-09-08 13:54:59
我尝试了反向工程一个本地HomeKit示例应用程序,并做了一些允许它工作的更改。但是,解释一下为什么我原来的实现不起作用是很棒的!
RNHomeKit.h
#import <Foundation/Foundation.h>
#import <HomeKit/Homekit.h>
#import <React/RCTBridgeModule.h>
@interface RNHomeKit : NSObject <RCTBridgeModule, HMHomeManagerDelegate>
@property (strong, nonatomic) HMHomeManager *myHomeManager;
@endRNHomeKit.m
#import "RNHomeKit.h"
#import <HomeKit/HomeKit.h>
#import <React/RCTLog.h>
@implementation RNHomeKit
@synthesize myHomeManager;
RCT_EXPORT_MODULE();
RCT_EXPORT_METHOD(createHome) {
RCTLog(@"FAKELY CREATING HOME");
self.myHomeManager = [[HMHomeManager alloc] init];
self.myHomeManager.delegate= self;
[self.myHomeManager addHomeWithName: @"Matt's Awesome Home" completionHandler:^(HMHome *home, NSError *error) {
RCTLog(@"REALLYING CREATING HOME");
if (!error) {
RCTLog(@"Created Home : %@",home.name);
} else {
RCTLog(@"Error: %@", error);
}
}];
}
@endhttps://stackoverflow.com/questions/46104524
复制相似问题