我在环信登录成功的回调中插入了一条消息,但是数据库中并没有这一条消息请问是为什么?

[[EMClient sharedClient] loginWithUsername:xxx password:xxx completion:^(NSString *aUsername, EMError *aError) {

                if (!aError) {

                    //环信登录 成功

                    NSLog(@"用户名为 --- %@",aUsername);
                    EMConversation *conversation = [[EMClient sharedClient].chatManager getConversation:@"对方的Id" type:0 createIfNotExist:YES];

                    EMTextMessageBody *body = [[EMTextMessageBody alloc] initWithText:@"感谢您的注册"];

        
                   //生成Message

                    EMMessage *message1 = [[EMMessage alloc] initWithConversationID:conversation.conversationId from:[EMClient sharedClient].currentUsername to:conversation.conversationId body:body ext:nil];

                    message1.direction = 1;

                    message1.isRead = NO;

                    message1.status = EMMessageStatusSuccessed;

                    message1.chatType = EMChatTypeChat;// 设置为单聊消息
                    [[EMClient sharedClient].chatManager importMessages:@[message1] completion:^(EMError *aError) {

                    }];
                }

                else{

                    //环信登录失败

                    NSLog(@"环信登录失败 ---- %@",aError.errorDescription);

                }

            }];
代码如上所示,但是在数据库中并不能找到这条消息,所有回调的error都是nil,请问是为什么?sdk的版本是3.x
共2个回复

zl

2017-03-03 19:14

 插入消息方法换一下 [[EMClient sharedClient].chatManager importMessages:@[message1] completion:^(EMError *aError) {                     }];换成 [conversation insertmessage:]

waxhr123

2017-03-03 19:18

谢谢你,解决了。但是我想问一下[[EMClient sharedClient].chatManager importMessages这个方法是什么时候才会有效的呢?我这个是按照文档来操作的

zl

2017-03-03 19:31

importMessages是导入批量消息的,不会把会话更新到内存来刷新UI,需要重新登录才可以获取到. insertmessage和append都可以直接更新到内存来刷新UI.

waxhr123

2017-03-03 19:34

明白了,谢谢你
点击此处继续提问与开发者们互动

申请试用

提交后工作人员会尽快与您联系进行功能演示
技术咨询已转移到管理后台,请先登录

即时通讯云使用者请在应用详情页面咨询
客服云使用者请进入管理员模式咨询

×

在线咨询

电话咨询

技术咨询

免费试用