iOS会话列表,为什么有时候获取不到最后一条消息?(OC语言)

jmessage
标签: #<Tag:0x00007f2137275330>

(明思) #1

如果创建的是一个新的单聊会话,会话列表中可以显示最新的一条消息,但是在此进入该聊天界面、或者接受到该聊天对象的消息时,还是显示之前的那条内容,会话列表不会更新了


#2

首先查看日志,消息是否有收到,是否消息收到了但你上层处理逻辑异常导致并未刷新出来。


(明思) #3

它有的时候会刷新出来,有的时候不会,当我获取所有回话的时候,里面的最后一条消息也不是最新的


#4

你调的是什么 API 获取的,看下日志,有没有取到信息。

如果已经取到了没显示,就得检查你上层的刷新是不是有问题


(明思) #5
  • (void)allConversations:(JMSGCompletionHandler)handler;我调用的这个方法,获取到会话放进数组中,然后再获取每个会话中的最后一条消息

#6

首先,SDK 收到消息时会上抛消息,上层通过 onReceiveMessage:error:onSyncOfflineMessageConversation:offlineMessages:,开发者可以通过代理方法来拿到具体的 message 对象,进而执行 UI 刷新或者其他相关逻辑

你先看下你的日志,对方发了消息之后,你这边有没有成功的收到,有没有事件

获取会话列表是在本地获取,得首先消息收到了才能取到,如果在收到消息之前调用的 API,那就取不到

另外,看下你的 SDK 版本是多少,是否用的最新的
https://docs.jiguang.cn/jmessage/updates/#ios-sdk-v380


#9

升级到最新的版本后即可,新版本有做处理
https://docs.jiguang.cn/jmessage/updates/#ios-sdk-v380


(menzhuiwan) #10

会话里面都更新了,退出来聊天列表过后获取allConversations 最后一条消息还是没更新


#11

这个看起来应该只是你的 UI 上层没更新吧


(menzhuiwan) #12

杀死程序重开还是没有啊,进入内页就有刚才的聊天


#13

UI 上层的处理是你自己做的,查看日志,获取会话列表,是否最后一条消息已经取到,只是你没有更新


(menzhuiwan) #14

allConversations 的最后一条还是以前的,但是接受消息,是接到了,聊天内页已经有了,返回列表页还是以前的


#15

你的 SDK 版本号多少,是不是最新的


(menzhuiwan) #16

pod 上周五拉取的 - -


(menzhuiwan) #17

Using JCore (1.2.5)

Using JMessage (3.7.0)

Using JPush (3.1.1.1)


(menzhuiwan) #18
[self.messageContent setText:[_conversation.latestMessageContentText stringByRemovingPercentEncoding]];

列表上_conversation.unreadCount 都有显示未读消息数量 但是最后一条消息latestMessageContentText还是以前的


#19

最新的是 3.8.0
https://docs.jiguang.cn/jmessage/updates/#ios-sdk-v380


(menzhuiwan) #20

CocoaPods 报错 Unable to find a specification for JMessage~&gt; 3.8.0


#21

(menzhuiwan) #22

升级了还是一样的,打开还是以前的最后一条消息
image
image