iOS接入环信客服时接受消息 messagesDidReceive:回调的问题
我是iOS接入环信客服,使用了环信 HelpDeskUI 中的 HDMessageViewController 来展示与客服交流的界面。当 HDMessageViewController 是当前界面的时候,客服发消息给客户端,是可以通过 messagesDidReceive:代理方法接受到消息的。但是如果 HDMessageViewController 被切换到不是当前界面的时候,这个代理方法不走,可是我能检测到未读消息个数不为零,也就是能收到消息。就是下面这个方法:
- (void)messagesDidReceive:(NSArray *)aMessages {
for (HMessage *message in aMessages) {
if ([self.conversation.conversationId isEqualToString:message.conversationId]) {
[_conversation markAllMessagesAsRead:nil];
[self addMessageToDataSource:message progress:nil];
//有新消息处理未读红点
[[NSNotificationCenter defaultCenter]postNotificationName:@"newMessageComeNotification" object:nil];
}
}
}
我的目的是想通过这个方法来拦截是否有消息过来,这样我在底部的 Tab 上展示未读消息的红点。
- (void)messagesDidReceive:(NSArray *)aMessages {
for (HMessage *message in aMessages) {
if ([self.conversation.conversationId isEqualToString:message.conversationId]) {
[_conversation markAllMessagesAsRead:nil];
[self addMessageToDataSource:message progress:nil];
//有新消息处理未读红点
[[NSNotificationCenter defaultCenter]postNotificationName:@"newMessageComeNotification" object:nil];
}
}
}
我的目的是想通过这个方法来拦截是否有消息过来,这样我在底部的 Tab 上展示未读消息的红点。
没有找到相关结果
已邀请:
1 个回复
fuxiaopanda - bug
HChatClient.shared().chatManager.add(self, delegateQueue: nil)
并实现代理方法
extension AppDelegate: HChatClientDelegate,HChatDelegate {
func messagesDidReceive(_ aMessages: [Any]!) {
//有新消息处理未读红点
NotificationCenter.default.post(name: NSNotification.Name(rawValue: "newMessageComeNotification"), object: nil)
}
}
就可以在全局接受到客服发送过来的消息了!