共计 847 个字符,预计需要花费 3 分钟才能阅读完成。
刚接触即时通讯的我的项目,在应用融云的 SDK 来实现我的项目需要时,磕磕碰碰,死命看文档和提工单问融云的技术人员,真是一段痛并高兴的历程,哈哈哈!明天分享一个滑动加载获取历史音讯的性能
知识点
先看获取历史音讯的代码:
var conversation = im.Conversation.get({
targetId: ‘ 接管方的 userId’,
type: RongIMLib.CONVERSATION_TYPE.PRIVATE
});
var option = {
timestrap: +new Date(),
count: 20
};
conversation.getMessages(option).then(function(result){
var list = result.list; // 历史音讯列表
var hasMore = result.hasMore; // 是否还有历史音讯能够获取
console.log(‘ 获取历史音讯胜利 ’, list, hasMore);
});
参数阐明:
1、因为 Web 端没有本地存储,不提供本地获取办法,只能从远端获取 2、应用获取历史音讯办法须要在开发者后盾开启 IM 商用版 – 单群聊云存储 服务 3、每次最多只能获取 20 条历史音讯 所以问题来了,获取历史音讯的办法最多只能获取 20 条音讯,那我想获取 20 条之前的音讯,怎么办呢? 咱们须要从它的参数来动手, 解决思路就是扭转参数 timestrap(工夫戳),在每次调用 conversation.getMessages 胜利取得历史音讯列表 result.list 后,将 result.list 中 sentTime 值最小的赋值给 timestrap 而后滑动持续调用 conversation.getMessages 即可获取不同时间段的历史音讯 ,也能够通过扭转参数 order 来扭转是获取该时间段之前的音讯还是之后的音讯。
是不是很简略,反正一开始我是迷糊了,所以记录一下,也分享给有须要的同学,有余的中央还请留言斧正,大家共勉 ~ 加油!!!
下图是 result.list 中 message 的属性阐明: