1.项目背景
出于项目的需要,今日一直研究环信集成的IM 发送类似淘宝商品链接的item ,小有成就 特在此分享: 电商中的及时聊天一般都要把商品的信息发送给卖家,以方便双方的交流,由于之前借鉴 了网上的一些例子,故个别字段和主题有点出入:
2.具体实现步骤
1.环信的消息扩展,首先我们要定义消息的扩展字段代码如下:
public class MinPianConstant {
public static final String MYTEXTTYPE="MYTEXTTYPE";//名片扩展
public static final String ICON="img";
public static final String GOODSNAME="goodsName";
public static final String PRICE="goodsprice";
public static final String DESC="goodsdesc";
}
2.定义EaseMessageAdapter 常量
private static final int REQUEST_TYPE_RECV_CALL=5;
private static final int REQUEST_TYPE_SEND_CALL=6;
3.创建发送的消息
由于从商品详情也跳转到聊天页面都需要发送商品item 所以每次创建时都发送消息给对方,但是有些可能从信息列表跳转到聊天页面这里给了标志位以作判别:
对话创建时发送商品详情的item
@Override
public void onActivityCreated(Bundle savedInstanceState) {
fragmentArgs = getArguments();
// check if single chat or group chat
chatType = fragmentArgs.getInt(EaseConstant.EXTRA_CHAT_TYPE, EaseConstant.CHATTYPE_SINGLE);
// userId you are chat with or group id
toChatUsername = fragmentArgs.getString(EaseConstant.EXTRA_USER_ID);
aNew=fragmentArgs.getString("new");
if (aNew!=null){
sendMIngPianMessage("万聚鲜城 冰岛进口新鲜冷冻海参斑鱼 去脏去砂开背600-800g/条","http://dynamic-image.yesky.com/740x-/uploadImages/2014/289/01/IGS09651F94M.jpg","不错");
}
super.onActivityCreated(savedInstanceState);
}
发送消息的方法
protected void sendMIngPianMessage(String name, String imv, String desc) {
EMMessage message = EMMessage.createTxtSendMessage(name,toChatUsername);
message.setAttribute(MinPianConstant.ICON,imv);
message.setAttribute(MinPianConstant.MYTEXTTYPE,"mingPianType");
message.setAttribute(MinPianConstant.GOODSNAME,name);
message.setAttribute(MinPianConstant.DESC,desc);
EMClient.getInstance().chatManager().sendMessage(message);
// sendMessage(message);
Log