那些年我们一起踩过环信的坑
2017-03-15 17:46
260 查看
环信IM聊天<基于版本V3.22-V3.3>
1.通过扩展消息传递头像
EMClient.getInstance().chatManager().sendMessage(message); //接收消息的时候获取到扩展属性 //获取自定义的属性,第2个参数为没有此定义的属性时返回的默认值 message.getStringAttribute("attribute1",null); message.getBooleanAttribute("attribute2", false);
上面API就可以将扩展消息传递出去,收到消息后直接message.getStringAttribute()可以很方便的获取到扩展消息了
最好不要在DemoHelp调用上图的方法,我之前使用这个方法出现的问题:多存了一遍内存,消息会重复,但是不是一定会产生,需要条件(你app被杀死后,然后运行app,把app切换到后台,然后再进去消息里面你就会发现有重复消息了,只需要将app杀死,后面再进去就没了)
2.通过透传消息进行回撤
1.<接收>找到DemoHelp的onCmdMessageReceived()这个回调,调用下面的方法就行了,if (action.equals("cmd_revoke")) { try { String msgid = message.getStringAttribute("msgid"); EMConversation conversation =EMClient.getInstance().chatManager().getConversation(message.getTo()); //--删除消息来表示撤回-- conversation.removeMessage(msgid); refreshUI(); } catch (HyphenateException e) { e.printStackTrace(); } }
*注意:EMClient.getInstance().chatManager().getConversation(message.getTo());这个方法message.getTo()是群Id 群组撤回 message.getFrom()单聊撤回
2.<发送>发送透传消息撤销ChatFragment类
//撤回消息 private void msgRevocation(String msgId) { EMMessage cmdMsg = EMMessage.createSendMessage(EMMessage.Type.CMD); // 如果是群聊,设置chattype,默认是单聊 if (chatType == CHATTYPE_GROUP) { cmdMsg.setChatType(EMMessage.ChatType.GroupChat); } String action = "cmd_revoke"; EMCmdMessageBody cmdBody = new EMCmdMessageBody(action); // 设置消息body cmdMsg.addBody(cmdBody); // 设置要发给谁,用户username或者群聊groupid cmdMsg.setTo(toChatUsername); // 通过扩展字段添加要撤回消息的id cmdMsg.setAttribute("msgid", msgId); cmdMsg.setMessageStatusCallback(new EMCallBack() { @Override public void onSuccess() { //撤销成功,删除本地改数据 conversation.removeMessage(contextMenuMessage.getMsgId()); messageList.refresh(); ToastUtils.showLongToastSafe("撤销消息成功"); } @Override public void onError(int i, String s) { ToastUtils.showLongToastSafe("撤回失败"); } @Override public void onProgress(int i, String s) { } }); EMClient.getInstance().chatManager().sendMessage(cmdMsg); }
3.Demo的视频录制在华为有的手机上会卡死
原因是因为Canvas不有释放相关文章推荐
- 那些年,我们一起写过的“单例模式”
- 那些年,让我们一起头疼的异常!
- makefile 工程管理---那些年我们一起学习linux程序设计
- 那些年 我们一起追过的DIY三大件
- 线程<一>---那些年我们一起学习linux程序设计 .
- Mmap设备方法---那些年我们一起玩嵌入式驱动
- 那些年,我们一起追过的Code......
- 那些年,我们一起追过的Code......
- 那些年,我们一起学过的汇编----之伪指令
- 那些年,我们一起被“坑”的垃圾邮件
- 那些年我们一起用过的获取手机号码的系统
- 那些年,我们一起学WCF--(7)PerSession实例行为
- 那些年,我们一起追过的女孩-会声会…
- 那些年,我们一起学WCF--(3)消息通信模式
- 那些年我们一起敲过的机房收费系统——完结篇
- 那些年,我们一起喜欢的诺基亚
- 那些年,我们一起追过的异常!!
- 那些年我们一起追过的缓存写法(一)
- 那些年我们一起改过的bug
- 那些年我们一起学习的线性布局 之 线性布局里很有趣的那些事