但我注意到当我从另一个方法调用它时,我的桥变量是零。我相信这是因为只有在从JavaScript调用桥接方法时才设置桥接。我已经尝试了从创建委托创建SingleTon类的一切。以上都没有工作,我不明白为什么它只能在我从Javascript调用的方法中使用。这里是我的类当我从另一个方法调用方法时,React-native Bridge是Nil
Helper.h
#import "RCTBridge.h"
#import "AppDelegate.h"
#import "RCTEventEmitter.h"
@interface Helper : RCTEventEmitter <RCTBridgeModule>
-(void) auth;
@end
这里是我的.m文件: Helper.m
#import "AppDelegate.h"
#import "Helper.h"
#import "RCTBridge.h"
#import "RCTEventDispatcher.h"
@implementation Helper
RCT_EXPORT_MODULE();
@synthesize bridge = _bridge;
- (NSArray<NSString *> *)supportedEvents {
return @[@"SpotifyHelper"];
}
RCT_EXPORT_METHOD(auth)
{
[self.bridge.eventDispatcher sendDeviceEventWithName:@"SpotifyHelper" body:@{@"Login": @true}];
printf("Auth");
}
RCT_EXPORT_METHOD(play:(NSString *) uri first: id)
{
AppDelegate *appDelegate = [[AppDelegate alloc] init];
[appDelegate play:uri second:id];
}
@end
我对方法调用从我委托这样的内部:
[[AppDelegate alloc] init] auth]
这是我认为它没有初始化的原因。我不知道如何让RCTBridge变量不为零。任何帮助?
今天帮助我 - 谢谢! –
你在哪里调用startObserving方法? –
@FernandoCaride'startObserving'和'stopObserving'函数是在.h文件中实现的RCTEventEmitter类的重写。所以这些应该在你的应用程序启动并且实例化时自动调用。 (希望有道理!) –