发送 Bird didReceiveMessage 无效
Send Bird didReceiveMessage Not Works
所以创建了一个简单的应用程序来测试 sendbird 服务,它们看起来最好,所以我已经阅读了它们的文档,此时此刻。我做了一些东西..但我在那里遇到了问题,我什么时候必须调用 didReceiveMessage 或者为什么我的不工作?
我的代码
- (IBAction)connnect:(id)sender {
[SBDOpenChannel getChannelWithUrl:@"iDict" completionHandler:^(SBDOpenChannel * _Nullable channel, SBDError * _Nullable error) {
if (error != nil) {
NSLog(@"Error 1 : %@", error.localizedDescription);
return;
}
[channel enterChannelWithCompletionHandler:^(SBDError * _Nullable error) {
if (error != nil) {
NSLog(@"Error: %@", error);
return;
}
NSLog(@"Connected to Channel : %@",channel.channelUrl);
// ...
}];
}];
}
- (IBAction)sendMessage:(id)sender {
[self.channel sendUserMessage:@"pop" data:@"Hey" completionHandler:^(SBDUserMessage * _Nullable userMessage, SBDError * _Nullable error) {
if (error != nil) {
NSLog(@"Error: %@", error);
return;
}
}];
}
- (void)channel:(SBDBaseChannel * _Nonnull)sender didReceiveMessage:(SBDBaseMessage * _Nonnull)message {
if (sender == self.channel) {
NSLog(@"From Button.Message Received From %@ message is : %@ in channel :",sender.description,message.description);
} else {
NSLog(@"Failed");
}
}
@end
您是否将当前 class 注册为频道代表?您需要这样做,以便当通道收到消息时,它会用收到的消息调用您的委托。
所以在你的 class 中,我假设它是一个 UIViewController,声明它符合如下:
@interface OpenChannelViewController : ViewController<SBDChannelDelegate>
@end
在您的 viewDidLoad 中的某处,您应该将此 class 添加到频道委托中。
- (void)viewDidLoad {
[SBDMain addChannelDelegate:self identifier:UNIQUE_HANDLER_ID];
}
现在您应该会收到消息。信息取自这里:
https://docs.sendbird.com/ios?_ga=1.152151677.594130729.1491427400#open_channel_3_receiving_messages
祝你好运!
所以创建了一个简单的应用程序来测试 sendbird 服务,它们看起来最好,所以我已经阅读了它们的文档,此时此刻。我做了一些东西..但我在那里遇到了问题,我什么时候必须调用 didReceiveMessage 或者为什么我的不工作?
我的代码
- (IBAction)connnect:(id)sender {
[SBDOpenChannel getChannelWithUrl:@"iDict" completionHandler:^(SBDOpenChannel * _Nullable channel, SBDError * _Nullable error) {
if (error != nil) {
NSLog(@"Error 1 : %@", error.localizedDescription);
return;
}
[channel enterChannelWithCompletionHandler:^(SBDError * _Nullable error) {
if (error != nil) {
NSLog(@"Error: %@", error);
return;
}
NSLog(@"Connected to Channel : %@",channel.channelUrl);
// ...
}];
}];
}
- (IBAction)sendMessage:(id)sender {
[self.channel sendUserMessage:@"pop" data:@"Hey" completionHandler:^(SBDUserMessage * _Nullable userMessage, SBDError * _Nullable error) {
if (error != nil) {
NSLog(@"Error: %@", error);
return;
}
}];
}
- (void)channel:(SBDBaseChannel * _Nonnull)sender didReceiveMessage:(SBDBaseMessage * _Nonnull)message {
if (sender == self.channel) {
NSLog(@"From Button.Message Received From %@ message is : %@ in channel :",sender.description,message.description);
} else {
NSLog(@"Failed");
}
}
@end
您是否将当前 class 注册为频道代表?您需要这样做,以便当通道收到消息时,它会用收到的消息调用您的委托。
所以在你的 class 中,我假设它是一个 UIViewController,声明它符合如下:
@interface OpenChannelViewController : ViewController<SBDChannelDelegate>
@end
在您的 viewDidLoad 中的某处,您应该将此 class 添加到频道委托中。
- (void)viewDidLoad {
[SBDMain addChannelDelegate:self identifier:UNIQUE_HANDLER_ID];
}
现在您应该会收到消息。信息取自这里: https://docs.sendbird.com/ios?_ga=1.152151677.594130729.1491427400#open_channel_3_receiving_messages
祝你好运!