我想为特定频道订阅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,因为我将其导出为原生反应或者是其他内容?