请选择 进入手机版 | 继续访问电脑版
查看: 517|回复: 3

前端怎么获取会话列表

[复制链接]

2

主题

2

帖子

7

积分

云客

Rank: 1

积分
7
发表于 2018-6-21 16:20:51 | 显示全部楼层 |阅读模式
想做一个消息列表
回复

使用道具 举报

6

主题

90

帖子

450

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
450
发表于 2018-7-4 09:39:43 | 显示全部楼层
消息列表,也就是最近会话列表。各个客户端获取最近会话列表的方式:

Windows (C)
调用nim_session.h中nim_session_query_all_recent_session_async接口获取最近会话列表,其中nim_session_query_recent_session_cb_func注册回调函数,回调的result为“会话列表的Json Keys”(相关定义在nim_session_def.h中)。
当有消息收发时,SDK会通知最近会话更新,需要通过接口nim_session_reg_change_cb注册全局最近会话列表项变更通知,其中nim_session_change_cb_func为回调函数,回调的result为“会话列表的Json Keys”。

Android
调用接口NIMClient.getService(MsgService.class).queryRecentContacts().setCallback(new RequestCallbackWrapper>() {...}时,在onResult中回调最近会话列表(最近联系人列表)。
当有消息收发时,SDK会通知最近会话更新,需要通过接口NIMClient.getService(MsgServiceObserve.class).observeRecentContact(Observer<java.util.List<RecentContact>> observer, true);注册最近会话列表变化观察者,onEvent中会回调消息List。

iOS
获取最近会话:NSArray *recentSessions = [NIMSDK sharedSDK].conversationManager.allRecentSessions;
当增加、修改、删除最近会话时,SDK提供回调通知。需要开发者实现NIMConversationManagerDelegate中的相应回调方法。
增加最近会话的回调:-didAddRecentSession:totalUnreadCount:
修改最近会话的回调:-didUpdateRecentSession:totalUnreadCount:
删除最近会话的回调:-didRemoveRecentSession:totalUnreadCount:

Web
浏览器支持数据库时, SDK会将会话存储于本地数据库中, 并且在初始化NIM.getInstance时通过回调onsessions将最多100条会话列表返回给开发者,可以调用接口nim.getLocalSessions(options)获取更多最近会话。
初始化NIM.getInstance时,配置会话更新回调函数onupdatesession来接收更新会话的回调,包括发送和接收消息、设置当前会话,重置会话未读数等。
回复

使用道具 举报

2

主题

5

帖子

10

积分

云客

Rank: 1

积分
10
发表于 2018-7-12 14:37:32 | 显示全部楼层
那如果app卸载了,重新安装还能获取到以前的会话列表吗?
回复

使用道具 举报

11

主题

36

帖子

413

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
413
发表于 2018-7-12 20:38:58 | 显示全部楼层
枫林 发表于 2018-7-12 14:37
那如果app卸载了,重新安装还能获取到以前的会话列表吗?

app卸载了,如果管理后台有开启消息漫游的话,漫游的消息还是会构建会话的。如果没有漫游就拿不到以前的会话了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表