环信3.x php类,环信2.x升级3.0变动介绍

SDK 2.x至3.0升级指南

使用升级替换脚本

可以使用SDK中的自动替换脚本替换大部分原有API的变动, 有部分需要手动更新的请见下面的说明。

./replace.sh your_source_folder

注意

该脚本可以允许在linux,mac及cygwin环境下并需要可执行权限

如果在mac下,需要用户用brew或其他方式安装gsed

API大致变动介绍

3.0中的核心类为EMClient类,通过emclient类可以获取到chatmanager、groupmanager、contactmanager、chatroommanager等manager对象,此外和这些manager不太相关的方法基本EMClient类里面,如登录、设置连接监听等方法。message里的成员变量的获取都变成getXXX获取

从2.x升级到3.0,大部分的变动只需要改变api名称就可以了,但是少部分地方因为架构等原因需要一些稍复杂的改动。 这里先列出api大概的变动列表:

b29a702bdafb0d0967d576c35ce284ad.png

d42c83a49d56a90af83fdb080aad4994.png

707b228abf2103831598982fa729aaa2.png

41f0ca5a9e8dc3d477c8c57cd3617934.png

消息接发对于以前通过conversation.addConversation()方法,然后在adapter中发送消息的开发者来说变动稍微有点大,这里再单独列出来修改方法: 首先把conversation.addMessage(message)删除掉,然后调用sendmessage方法,在messageadapter显示消息的地方,不再调用sendmessage方法,adapter里只是根据消息的状态显示相应的ui即可,通过调用message.setMessageStatusCallback(messageReceiveCallback),监听消息是否发送成功等,这里以发送文字消息作为示例、

protected void sendMessage(EMMessage message){

if(chatFragmentListener != null){

//设置扩展属性

chatFragmentListener.onSetMessageAttributes(message);

}

// 如果是群聊,设置chattype,默认是单聊

if (chatType == EaseConstant.CHATTYPE_GROUP){

message.setChatType(ChatType.GroupChat);

}else if(chatType == EaseConstant.CHATTYPE_CHATROOM){

message.setChatType(ChatType.ChatRoom);

}

//发送消息

EMClient.getInstance().chatManager().sendMessage(message);

//刷新ui

messageList.refreshSelectLast();

}

在显示消息的adpater中,根据消息状态显示相应ui即可

protected void handleTextMessage() {

if (message.direct() == EMMessage.Direct.SEND) {

setMessageSendCallback();

switch (message.status()) {

case CREATE:

progressBar.setVisibility(View.GONE);

statusView.setVisibility(View.VISIBLE);

break;

case SUCCESS: // 发送成功

progressBar.setVisibility(View.GONE);

statusView.setVisibility(View.GONE);

break;

case FAIL: // 发送失败

progressBar.setVisibility(View.GONE);

statusView.setVisibility(View.VISIBLE);

break;

case INPROGRESS: // 发送中

progressBar.setVisibility(View.VISIBLE);

statusView.setVisibility(View.GONE);

break;

default:

break;

}

}else{

if(!message.isAcked() && message.getChatType() == ChatType.Chat){

try {

EMClient.getInstance().chatManager().ackMessageRead(message.getFrom(), message.getMsgId());

} catch (HyphenateException e) {

e.printStackTrace();

}

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值