Ich erstelle eine Brücke von iOS
zu React Native
für HomeKit
. Ich fange gerade gerade an und versuche einfach, ein Heim für Testzwecke zu schaffen. Ich habe erfolgreich Berechtigungen für HomeKit akzeptiert, wie in der aka NSHomeKitUsageDescription
festgelegt.Warum wird meine überbrückte Methode nicht korrekt aufgerufen?
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);
}
}];
}
@end
RNHomekit.h
#import <Foundation/Foundation.h>
#import <HomeKit/Homekit.h>
#import <React/RCTBridgeModule.h>
@interface RNHomeKit : NSObject <RCTBridgeModule>
@end
ich auf meinem Homescreen ist meine createHome
Methode bin Aufruf componentDidMount()
RNHomeKit.createHome();
verwenden. FAKELY CREATING HOME
wird protokolliert, während REALLYING CREATING HOME
nie gesehen wird. Warum treffe ich nicht die addHomeWithName
?
Es hängt davon ab, wie Sie 'addHomeWithName' implementieren. Bist du sicher, dass es nicht heißt? Da Sie es im Callback von 'completionHandler' protokollieren, wird es möglicherweise nur ohne Abschluss aufgerufen. – Val
'addHomeWithName' ist eine Funktion von' HMHomeManager' [Link zu Dokumenten] (https://developer.apple.com/documentation/homekit/hmhomemanager/1616747-addhomewithname?language=objc) – MattyK14