云旺SDK提供了消息已读的处理,如果要使用此功能,请先通过全局设置来开启此功能。如果是UI方式的集成,只要开启此功能即可。
如果是IMCore方式的集成,云旺SDK提供了几个API供开发者来进行已读消息的设置
YWConversation提供了设置方法,此方法会自动对将已读状态同步到服务器,同时修改本地消息为已读并状状态同步到数据库 /** * 设置消息已读 * @param msg * @param callback */ public abstract void setMsgReadedStatusToServer(YWMessage msg, IWxCallback callback); /** * 设置消息已读 * @param msgs * @param callback */ public abstract void setMsgReadedStatusToServer(List<YWMessage> msgs, IWxCallback callback);
YWConversation提供了读取方法,从服务器查询消息是否读取过 /** * 获取消息已读状态,如果是已经读过,会自动将消息设置为已读状态 * @param msg * @param callback */ public abstract void getMsgReadedStatusFromServer(YWMessage msg, IWxCallback callback); /** * 获取消息已读状态,如果是已经读过,会自动将传入的消息的状态修改为已读 * @param msg * @param callback */ public abstract void getMsgReadedStatusFromServer(List<YWMessage> msg, IWxCallback callback); YWMessage提供了读取状态(内存级别的查询) /** * 获取消息是否真正被读过(即出现在接收方的屏幕中) * @return {@link YWMessage.MSG_READED_STATUS} {@link YWMessage.MSG_UNREADED_STATUS} */ public abstract int getMsgReadStatus();
一种可能的场景是,聊天窗口打开着,对方某条消息已经读过,发送方需要实时显示已读状态
开发者可以通过设置IYWMessageListener监听来完成。