文档:
http://www.rongcloud.cn/docs/web.html#conversation (请注意一定要开启 单群聊消息云端存储功能
收费详情)
参考:
conversation-list.html
会话列表的数据分两部分,
一部分是会话列表(包含最后一条消息),SDK 提供了 getConversationList 方法获取数据;
另外一部分是会话对象(联系人,群等)的基本信息,需要应用服务器提供接口
1.用户登录成功后,获取 appKey,token,链接云端
模拟的用户及群组信息数据 : conversation-list.json 中的 "userInfos,groupInfos"
调用 init() 初始化,链接云端
var userInfo = {
appKey: "",
token: ""
};
var callbacks = {
CONNECTED: function (instance) {
},
Success: function (id) {
},
Received: function (message) {
}
};
init(userInfo, callbacks);
2.获取会话列表,处理会话列表(拼接应用服务器提供的用户或群组信息),渲染会话列表
模拟的会话列表数据 : conversation-list.json 中的 "conversation"
拼接后会话列表数据 : conversation-list.json 中的 "translate-conversation"
//同步会话列表
//@param {ResultCallback} callback 返回值,参数回调
//@param {array} conversationTypes 可选参数,可以获取指定会话类型的会话,默认请传 null
instance.getConversationList({
onSuccess: function (conversations) {
//处理会话列表
transConversations(conversations, function (translatedConversations) {
//处理完成后,渲染会话列表
renderConversationView(translatedConversations,instance);
})
}
}, null);
3.删除指定会话/清除会话列表
instance.removeConversation(conversationType,targetId,{
onSuccess:function(bool){
//删除会话成功。
console.log(bool);
},
onError:function(error){
// error => 删除会话的错误码
console.log(error);
}
});
4.新消息接受
参考消息接受, 消息都是统一接受的,需要开发者根据消息的conversationType和targetId来判断消息属于哪个会话并在对应会话中更新
在接受新消息后重新计算未读消息数,并根据用户操作清除未读数,最后再同步状态到多端。具体实现请参考:消息状态及处理方式