无法从React Native调用本机iOS方法

时间:2017-12-19 05:35:12

标签: ios objective-c react-native pusher

我想为特定频道订阅Pusher服务的推送通知,但由于本机Pusher客户端不支持推送通知,我需要编写一个桥接器。

为此,有一个名为'subscribe'的原生iOS方法,我想从反应本机调用'推送器'的实例(?),但由于某种原因,它将无法正常执行。

'pusher'在AppDelegate.m中初始化为:

self.pusher = [PTPusher pusherWithKey:@"..." delegate:self encrypted:YES cluster:@"ap1"];

我在AppDelegate.m中导出的原生iOS函数看起来像:

RCT_EXPORT_METHOD(subscribe:(NSString *)channel) {
  [[[self pusher] nativePusher] subscribe:channel];
  NSLog(@"Called AppDelegate.subscribe with channel: %@", channel);
}
我调用的

使用NativeModules.AppDelegate.subscribe([channel])反应原生。我可以看到这是因为日志显示而被调用,但是我可以告诉我没有调用nativePusher.subscribe函数,因为没有收到通知,而且我在nativePusher.subscribe中添加的日志记录没有出现。

奇怪的是,如果nativePusher.subscribe方法在不同的函数下调用,则该方法有效:

- (void)application:(UIApplication *)application 
didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
  [[[self pusher] nativePusher] registerWithDeviceToken:deviceToken];
  NSLog(@"Registered device token: %@", deviceToken);
  [[[self pusher] nativePusher] subscribe:@"channelc"];
}

所以我怀疑它与

有关
  

申请:(UIApplication *)申请

未被使用,和/或对自我的引用。

我是否需要以不同方式调用nativePusher.subscribe,因为我将其导出为原生反应或者是其他内容?

0 个答案:

没有答案