Easemob


环信将基于移动互联网的即时通讯能力,如单聊、群聊、发语音、发图片、发位置等,环信全面支持Android、iOS,在流量、电量、长连接、语音、位置、安全等能力做了极致的优化,让移动开发者摆脱繁重的移动IM通讯底层开发,极大限度地缩短产品开发周期,极短的时间内让App拥有移动IM能力。注:使用插件,第一步,调用环信初始化方法(initEasemob),第二步:注册监听回调方法(addListener),用来接受回调信息。前两步调用后,再调用其他接口才能成功,若失败会通过注册的回调方法显示错误信息。当前环信SDK版本为2.2 (群主邀请人加群及群成员邀请人加群时,不需要被邀请人同意或拒绝,只要邀请了就进入了群聊)

如何平台创建应用

1.登录环信即时通信云进行注册,登录,如下图:

image

注册、登录都选择‘环信即时通信云’,如下图:
image

2.登录 如下图:
image

3.创建应用,如下图:
image

4.注册模式,选择”开放注册“,如下图:
image

5.填写完上图,点‘确定’按钮,进入”我的应用“,如下图:
image

6.iOS的需要配置APNS证书名字,请参考iOS证书申请教程
image

环信即时通信

回调状态常量(Number):

聊天类型(Number):

  • rd.Easemob.SINGL: 单聊, 0
  • rd.Easemob.GROUP: 群聊, 1
  • rd.Easemob.ROOM: 聊天室, 2

方法:

对象:

  • Info : JSON对象,回调:格式参数:

回调方法:

rd.Easemob.CODE_LOGIN


登录

返回内容:

成功:

{"code":0, "status":1,"content":{
"username":String,//用户名
"password":String,//密码
}
}

失败:

{"code":0, "status":0,"content":"失败原因"}

rd.Easemob.CODE_RIGIST


注册

返回:

成功:

{"code":1, "status":1,"content":{
"username":String//用户名
"password":String//密码,必填
}
}

失败:

{"code":1, "status":0,"content":"失败原因"}

rd.Easemob.CODE_SEND_TEXT


发送文本消息

返回:

成功:

{"code":2, "status":1,"content":{
"from":"username",//发送方用户名
"to":"username",//接收方用户名
"messageId":"messageId",//信息id
"messageBody"//消息体
{"messageType":1,//消息类型,文字为1
"messageText":String//文字内容
}}}

失败:

{"code":2, "status":0,"content":"失败原因"}

rd.Easemob.CODE_SEND_VOICE


发送语音消息

返回:

成功:

{"code":3, "status":1,"content":{
"from":"username",//发送方用户名
"to":"username",//接收方用户名
"messageId":"messageId",//消息id
"messageBody"://消息体
{"messageType":5,//消息类型,语音消息为5
"displayName":String,//文件名
"localPath":String,//本地文件路径
"remotePath":String,//远程文件链接
"secretKey":String,//远端语音文件的密钥, 下载时需要语音文件密钥和用户安全信息配合以下载远程语音文件
"duration":Number//语音时长, 秒为单位
    }}}

失败:

{"code":3, "status":0,"content":"失败原因"}

rd.Easemob.CODE_SEND_PICTURE


发送图片消息

返回:

成功:

{"code":4, "status":1,"content":    
{"from":"username",//发送方用户名
"to":"username",//接收方用户名
"messageId":"messageId",//消息id
"messageBody"://消息体
{"messageType":2,//消息类型,图片为2
"displayName":String,//显示文件名
"localPath":String,//本地文件路径
"remotePath":String,//远程文件链接
"secretKey":String,//远端语音文件的密钥, 下载时需要语音文件密钥和用户安全信息配合下载远程语音文件
}}}

失败:

{"code":4, "status":0,"content":"失败原因"}

rd.Easemob.CODE_SEND_LOCATION


发送位置消息

返回:

成功:

{"code":5, "status":1,"content":
{"from":"username",//发送方用户名
"to":"username",//接收方用户名
"messageId":"messageId",//消息id
"messageBody"://消息体
{"messageType":4,//消息类型,位置为4
"latitude":Number,//纬度
"longitude":Number,//经度
"address":String//地址
}}}

失败:

{"code":5, "status":0,"content":"失败原因"}

rd.Easemob.CODE_SEND_FILE


发送文件信息

返回:

成功:

{"code":6, "status":1,"content":
{"from":"username",//发送方用户名
"to":"username",//接收方用户名
"messageId":"messageId",//消息id
"messageBody"://消息体
{    "messageType":6,//消息类型,文件为6
"displayName":String,//显示的用户名
"localPath":String,//本地文件路径
"remotePath":String,//远程文件链接
"secretKey":String,//远端语音文件的密钥, 下载时需要语音文件密钥和用户安全信息配合以下载远程语音文件
"fileLength":Number //文件长度, 以字节为单位
}}}

失败:

{"code":6, "status":0,"content":"失败原因"}

rd.Easemob.CODE_SEND_VIDEO


发送视频信息

返回:

成功:

{"code":7, "status":1,"content":
{"from":"username",//发送方用户名
"to":"username",//接收方用户名
"messageId":"messageId",//消息id
"messageBody"://消息体
{"messageType":3,//消息类型,视频为3
"displayName":String,//显示的文件名
"localPath":String,//本地文件路径
"remotePath":String,//远程文件链接
"secretKey":String,//远端语音文件的密钥, 下载时需要语音文件密钥和用户安全信息配合以下载远程语音文件
"fileLength":Number//文件长度, 以字节为单位
}}}

失败:

{"code":7, "status":0,"content":"失败原因"}

rd.Easemob.CODE_NEW_MESSAGE


收到新消息

返回:

文字消息:

{"code":8, "status":1,"content":{"from":"username","to":"username","messageId":"messageId","messageTime":"1448256183806","messageBody":{"messageType":1,"messageText":String}}}

语音消息:

{"code":8, "status":1,"content":{"from":"username","to":"username","messageId":"messageId","messageTime":"1448256183806","messageBody":{"messageType":5,"displayName":String,"localPath":String,"remotePath":String,"secretKey":String,"duration":int}}}

图片消息:

{"code":8, "status":1,"content":{"from":"username","to":"username","messageId":"messageId","messageTime":"1448256183806","messageBody":{"messageType":2,"displayName":String,"localPath":String,"remotePath":String,"secretKey":String}}}

位置消息:

{"code":8, "status":1,"content":{"from":"username","to":"username","messageId":"messageId","messageTime":"1448256183806","messageBody":{"messageType":4,"latitude":Number,"longitude":Number,"address":String}}}

文件消息:

{"code":8, "status":1,"content":{"from":"username","to":"username","messageId":"messageId","messageTime":"1448256183806","messageBody":{"messageType":6,"displayName":String,"localPath":String,"remotePath":String,"secretKey":String,"fileLength":Number}}}

视频消息:

{"code":8, "status":1,"content":{"from":"username","to":"username","messageId":"messageId","messageBody":{"messageType":3,"displayName":String,"localPath":String,"remotePath":String,"secretKey":String,"fileLength":Number}}}

rd.Easemob.CODE_ACK_MESSAGE


收到消息回执(仅单聊会发送此回调)

{"code":9, "status":1,"content":null}

rd.Easemob.CODE_CONTACT_DELETED


删除联系人

{"code":11, "status":1,"content":
{"username":"username"//删除的用户名
}}

rd.Easemob.CODE_CONTACT_INVITED


接到邀请的消息

{"code":12, "status":1,"content":
{"username":"username",//邀请方的用户名
 "message":String//附加消息
 }}

rd.Easemob.CODE_CONTACT_AGREED


同意好友请求

{"code":13, "status":1,"content":
{"username":"username"//好友的用户名
}}

rd.Easemob.CODE_CONTACT_REFUSED


拒绝好友请求

{"code":14, "status":1,"content":
{"username":"username"//好友的用户名
}}

rd.Easemob.CODE_CONNECTED


与服务器连接上

{"code":15, "status":1,"content":null}

rd.Easemob.CODE_DISCONNECTED


与服务器断开连接

{"code":16, "status":1,"content":null}

rd.Easemob.CODE_INVITETION_ACCPTED


群聊邀请被接受

{"code":19, "status":1,"content":
{"groupId":"groupId",//群id
"username":"username"//接受人用户名
}}

rd.Easemob.CODE_INVITETION_DECLINED


群聊邀请被拒绝

{"code":18, "status":1,"content":
{"groupId":"groupId",//群id
"username":"username",//拒绝人用户名
"reason":String//拒绝原因
}}

rd.Easemob.CODE_USER_REMOVED


当前用户被管理员移除出群聊

{"code":19, "status":1,"content":{"groupId":"groupId"}}

rd.Easemob.CODE_GROUP_DESTROY


群聊被创建者解散

{"code":20, "status":1,"content":{"groupId":"groupId"}}

rd.Easemob.CODE_APPLICATION_RECEIVED


用户申请加入群聊,收到加群申请

{"code":21, "status":1,"content":
{"groupId":"groupId", //群id
"groupname":String, //群名称
"username":String, //申请人用户名
"reason":String//申请原因
}}

rd.Easemob.CODE_APPLICATION_ACCEPT


加群申请被同意

{"code":22, "status":1,"content":{"groupId":"groupId", "groupname":String}}

rd.Easemob.CODE_INVITATION_RECEIVED


收到加入群聊的邀请

{"code":23, "status":1,"content":{"groupId":"groupId", "username":String, "message":String}}

rd.Easemob.CODE_APPLICATION_DECLINED


加群申请被拒绝

{"code":24, "status":1,"content":{"groupId":"groupId", "groupname":String, "reason":String}}

rd.Easemob.CODE_CALL_RECEIVE


收到实时通话

{"code":25, "status":1,"content":
{"sessionId":"sessionId", //通话实例的id,唯一
"sessionChatter":String,//通话对方的username
 "type":int,//通话的类型, 0为语音通话,1为视频通话
 }}

rd.Easemob.CODE_CALL_STATE_CHANGED


{"code":26, "status":1,"content":
{"status":int, //通话状态,0:通话没开始,1:通话响铃,2:通话双方正在协商,3:通话暂停,4:通话已经准备好,等待接听,5:通话已连接,6:通话双方同意协商,7:通过断了}}

rd.Easemob.CODE_CMD_MESSAGE_RECEIV


收到cmd消息

{"code":27, "status":1,"content":
{"from":"username",//发送方用户名
 "to":"username",//接收方用户名
  "messageId":string,//消息id
   "messageBody":
   {"messageType": 7,//消息类型,透传消息为7
    "action": String//指令内容
    }}}

rd.Easemob.CODE_CONTACT_USERNAMES


获取联系人列表

{"code":28, "status":1,"content":[{"username": "username"},{"username": "username"}...]}

rd.Easemob.CODE_ADD_CONTACT


添加好友

{"code":29, "status":1,"content":{"username":"username"}}

rd.Easemob.CODE_DELETE_CONTACT


删除好友

{"code":30, "status":1,"content":{"username":"username"}}

rd.Easemob.CODE_ACCEPT_INVITATION


同意好友请求

{"code":31, "status":1,"content":{"username":"username"}}

rd.Easemob.CODE_REFUSE_INVITATION


拒绝好友请求

{"code":32, "status":1,"content":{"username":"username"}}

rd.Easemob.CODE_USER_TO_BLACKLIST


将好友加入黑名单

{"code":38, "status":1,"content":{"username":"username"}}

rd.Easemob.CODE_DELETE_USER_FROM_BLACKLIST


将好友由黑名单移除

{"code":39, "status":1,"content":{"username":"username"}}

rd.Easemob.CODE_CREATE_PRIVATE_GROUP


创建私有群

{"code":40, "status":1,"content":
{"groupId":"groupId",//群id
"groupSubject":"groupSubject",//群主题
"groupDescription":"groupDescription",//群简介
"owner":"owner"//群所有者
}}

创建失败

{"code":40, "status":0,"content":失败原因}

rd.Easemob.CODE_CREATE_PUBLIC_GROUP


创建公有群

{"code":41, "status":1,"content":{"groupId":"groupId","groupSubject":"groupSubject","groupDescription":"groupDescription","owner":"owner"}}

创建失败

{"code":41, "status":0,"content":失败原因}

rd.Easemob.CODE_USERS_TO_GROUP


群主加人

{"code":42, "status":1,"content":{"groupId":"groupId","users":[{"username":"username"},{"username":"username"}...], //要加的人列表数组
"message",String//附加消息
}}

rd.Easemob.CODE_INVITE_USER


群成员邀请

{"code":43, "status":1,"content":{"groupId":"groupId","users":[{"username":"username"},{"username":"username"}...]//邀请成员列表数组
}}

rd.Easemob.CODE_REMOVE_USER_FROM_GROUP


删除群成员

{"code":44, "status":1,"content":{"groupId":"groupId","username":"username"
}}

rd.Easemob.CODE_JOIN_GROUP


加入群聊

{"code":45, "status":1,"content":{"groupId":"groupId","reason",String}}

rd.Easemob.CODE_EXIT_GROUP


退出群聊

{"code":46, "status":1,"content":{"groupId":"groupId"}}

rd.Easemob.CODE_EXIT_AND_DELETE_GROUP


解散群聊

{"code":47, "status":1,"content":{"groupId":"groupId"}}

rd.Easemob.CODE_GET_GROUP_FROM_SERVER


从服务器获取群列表

{"code":48, "status":1,"content":[{"groupId":"groupId","groupSubject":"groupSubject","groupDescription":"groupDescription","owner":"owner"},{"groupId":"groupId","groupSubject":"groupSubject","groupDescription":"groupDescription","owner":"owner"}...]}

rd.Easemob.CODE_GET_PUBLIC_GROUP_FROM_SERVER


获取所有公开群列表

{"code":49, "status":1,"content":[{"groupId":"groupId","groupSubject":"groupSubject","groupDescription":"groupDescription","owner":"owner"},{"groupId":"groupId","groupSubject":"groupSubject","groupDescription":"groupDescription","owner":"owner"}...]}

rd.Easemob.CODE_GROUP_FROM_SERVER


根据群聊ID从服务器获取群信息

{"code":50, "status":1,"content":{"groupId":"groupId","groupSubject":"groupSubject","groupDescription":"groupDescription","owner":"owner"}}

rd.Easemob.CODE_BLOCK_GROUP_MESSAGE


屏蔽群消息

{"code":51, "status":1,"content":{"groupId":"groupId"}}

rd.Easemob.CODE_UNBLOCK_GROUP_MESSAGE


解除屏蔽群消息

{"code":52, "status":1,"content":{"groupId":"groupId"}}

rd.Easemob.CODE_CHANGED_GROUP_NAME


修改群组名称

{"code":53, "status":1,"content":{"groupId":"groupId","changedGroupName":String}}

rd.Easemob.CODE_BLOCK_USER


将群成员拉入群组的黑名单

{"code":54, "status":1,"content":{"groupId":"groupId","username":"username"}}

rd.Easemob.CODE_BLOCKED_USERS


获取好友的黑名单用户列表

{"code":55, "status":1,"content":{"users":[{"username":"username"},{"username":"username"}...]}}

rd.Easemob.CODE_MAKE_VOICE_CALL


拨打语音通话

{"code":56, "status":1,"content":{"username":"username"}}

rd.Easemob.CODE_ANSWER_CALL


接听通话

{"code":57, "status":1,"content":null}

rd.Easemob.CODE_REJECT_CALL


拒绝接听通话

{"code":58, "status":1,"content":null}

rd.Easemob.CODE_SEND_CMD


发送透传消息

{"code":59, "status":1,"content":{"from":"username", "to":"username", "messageId":string, "messageBody":{"messageType": 7, "action": String}}}

rd.Easemob.CODE_END_CALL


发送透传消息

{"code":60, "status":1,"content":null}}

rd.Easemob.CODE_GROUP_BLOCKED_USERS


获取群组黑名单

{"code":63, "status":1,"content":{"groupId":"groupId","users":[{"username":"username"},{"username":"username"}...]}}

initEasemob


初始化环信即时通信SDK

rd.Easemob.initEasemob(isAutoLogin,isDebug,appkey,apns);
说明:

初始化环信通信SDK, 初始化需要在进入软件后最先调用, 当用户以前登录过且自动登录状态时,通过此初始化可以自动连接服务器。注意:在没有调用此方法前,调用其他与环信通信有关的接口不会调用成功。

参数:
  • isAutoLogin: (String) 是否自动登录,1:表示自动登录, 0:表示不自动登录, 必选
  • isDebug: (String) 是否开启debug模式, 默认0:非debug模式, 1:debug模式, 必选
  • appkey: (String) 申请应用时的appkey, 必选
  • apns: (String) 需要使用的APNS证书名字(需要与后台上传时的APNS证书名字相同, 客户端打包时的证书, 需要与服务器后台的证书一一对应), iOS特有Android不用传此值, 证书制作上传步骤
返回:

无返回

示例:
rd.Easemob.initEasemob("1","1","mouooo#mou","");

login


登录

rd.Easemob.login(username, password);
说明:

用户登录

参数:
  • username: (String) 用户名,用户唯一标示符, 必选
  • password: (String) 密码, 必选
返回:

无返回

回调:

回调方法:(stateCallback) 回调js的方法名

示例:
rd.Easemob.login("zhangsan", "123456");

logout


退出登录

rd.Easemob.logout();
说明:

退出登录

参数:

无参数

返回:

无返回

示例:
rd.Easemob.logout();

userRegister


注册

rd.Easemob.userRegister(username,password);
说明:

注册账号

参数:
  • username: (String) 用户名,用户唯一标示符(已注册的不能再注册,否则注册失败),不能为空,不能重复, 必选

用户名 规则:

  1. 环信‘用户名’需要使用英文字母和(或)数字的组合

  2. 环信‘用户名’不能使用中文

  3. 环信‘用户名’不能使用email地址

  4. 环信‘用户名’中间不能有空格或者井号(#)等特殊字符

  5. 允许的用户名正则 “[a-zA-Z0-9_-.]*” (a~z大小写字母/数字/横线/下划线/英文点) 其他都不允许

  6. 环信‘用户名’不区分大小写。系统忽略大小写,认为AA,Aa,aa,aA都是一样的,如果系统已经存在了环信‘用户名’为AA的用户,再试图使用aa作为环信‘用户名’注册新用户,系统返回用户名重复,以此类推。但是请注意:环信‘用户名’在数据上的表现形式还是用户最初注册的形式,注册时候使用的大写就保存大写,是小写就保存小写,即:使用AA注册,环信保存的‘用户名’就是AA;使用Aa注册,环信保存的‘用户名’就是Aa,以此类推。

  • password: (String) 密码,必选
返回:

无返回

回调:

回调方法:(stateCallback) 回调js的方法名

示例:
rd.Easemob.userRegister("zhangsan","123456");

sendText


发送文本

rd.Easemob.sendText(username,type,text);
说明:

发送文本信息

参数:
  • username: (String) 单聊:用户名,群聊和聊天室:群ID或者聊天室ID, 必选
  • type: (聊天类型) 单聊:rd.Easemob.SINGL, 群聊:rd.Easemob.GROUP, 聊天室: rd.Easemob.ROOM, 必选
  • text: (String) 内容, 必选
返回:

无返回

回调:

回调方法:(stateCallback) 回调js的方法名

示例:
rd.Easemob.sendText("zhangsan", rd.Easemob.SINGLE, "你好!");

sendCmd


发送cmd

rd.Easemob.sendCmd(username,type,action);
说明:

发送透传消息

参数:
  • username: (String) 用户名, 必选
  • type: (聊天类型) 单聊:rd.Easemob.SINGL, 群聊:rd.Easemob.GROUP, 聊天室: rd.Easemob.ROOM, 必选
  • action: (String) action可以自定义,在广播接收时可以收到, 必选
返回:

无参数:

回调:

回调方法:(stateCallback) 回调js的方法名

示例:
rd.Easemob.sendCmd("zhangsan",rd.Easemob.SINGLE, "kkk");

sendVoice


发送语音

rd.Easemob.sendVoice(username,type,voicePath,length);
说明:

发送语音信息

参数:
  • username: (String) 用户名, 必选
  • type: (聊天类型) 单聊:rd.Easemob.SINGL, 群聊:rd.Easemob.GROUP, 聊天室: rd.Easemob.ROOM, 必选
  • voicePath: (String) 语音路径, 必选
  • length: (String) 长度, 单位为(秒), 必选
返回:

回调:

回调方法:(stateCallback) 回调js的方法名

示例
rd.Easemob.sendVoice("zhangsan", rd.Easemob.SINGLE, "/mnt/sdcard/01.mp3", "200");

sendPicture


发送图片

rd.Easemob.sendPicture(username,type,picPath);
说明:

发送图片信息

参数:
  • username: (String) 用户名, 必选
  • type: (聊天类型)单聊:rd.Easemob.SINGL, 群聊:rd.Easemob.GROUP, 聊天室: rd.Easemob.ROOM, 必选
  • picPath: (String) 图片路径, 必选
返回:

无返回

回调:

回调方法:(stateCallback) 回调js的方法名

示例:
rd.Easemob.sendPicture("zhangsan", rd.Easemob.SINGLE, "/mnt/sdcard/01.png");

sendLocation


发送位置

rd.Easemob.sendLocation(username,type,placename,lat,lon);
说明:

发送位置信息

参数:
  • username: (String) 用户名, 必选
  • type: (聊天类型) 单聊:rd.Easemob.SINGL, 群聊:rd.Easemob.GROUP, 聊天室: rd.Easemob.ROOM, 必选
  • placename: (String) 地址名, 必选
  • lat: (String) 纬度, 必选
  • lon: (String) 经度, 必选
返回:

无返回

回调:

回调方法:(stateCallback) 回调js的方法名

示例:
rd.Easemob.sendLocation("zhangsan", rd.Easemob.SINGLE, "陕西省西安市", "34.27", "108.93");

sendFile


发送文件

rd.Easemob.sendFile(username,type,filePath);
说明:

发送文件信息

参数:
  • username: (String) 用户名, 必选
  • type: (聊天类型) 单聊:rd.Easemob.SINGL, 群聊:rd.Easemob.GROUP, 聊天室: rd.Easemob.ROOM, 必选
  • filePath: (String) 文件路径, 必选
返回:

无返回

回调:

回调方法:(stateCallback) 回调js的方法名

示例:
rd.Easemob.sendFile("zhangsan", rd.Easemob.SINGLE, "/mnt/sdcard/01.txt");

sendVideo


发送视频

rd.Easemob.sendVideo(username,type,videoPath);
说明:

发送视频信息

参数:
  • username: (String) 用户名, 必选
  • type: (聊天类型) 单聊:rd.Easemob.SINGL, 群聊:rd.Easemob.GROUP, 聊天室: rd.Easemob.ROOM, 必选
  • videoPath: (String) 视频路径, 必选
返回:

无返回

回调:

回调方法:(stateCallback) 回调js的方法名

示例:
rd.Easemob.sendVideo("zangsan", rd.Easemob.SINGLE, "/mnt/sdcard/01.mp4");

getUnreadMsgCount


未读消息数

var number = rd.Easemob.getUnreadMsgCount(username,type);
说明:

未读消息数(单一聊天人,所有聊天人)。

参数:
  • username: (String) 用户名,群id,聊天室id, 必选
  • type: (聊天类型) 单聊:rd.Easemob.SINGL, 群聊:rd.Easemob.GROUP, 聊天室: rd.Easemob.ROOM, 必选
返回:
  • number: (Number) 未读消息数
回调:

示例:
rd.Easemob.getUnreadMsgCount("zhangsan",rd.Easemob.SINGLE);

resetUnreadMsgCount


未读消息数清零

rd.Easemob.resetUnreadMsgCount(username,type);
说明:

未读消息数清零(指定会话消息未读数清零)

参数:
  • username: (String) 用户名,群id,聊天室id, 必选
  • type: (聊天类型) 单聊:rd.Easemob.SINGL, 群聊:rd.Easemob.GROUP, 聊天室: rd.Easemob.ROOM, 必选
返回:

回调:

示例:
rd.Easemob.resetUnreadMsgCount("zhangsan",rd.Easemob.SINGLE);

setMarkReadMsg


设置消息为已读

rd.Easemob.setMarkReadMsg(username,msgId);
说明:

设置消息为已读

参数:
  • username: (String) 用户名,群id,聊天室id, 必选
  • msgId: (String) 消息id, 必选
返回:

回调:

示例:
rd.Easemob.setMarkReadMsg("zhangsan","12334");

resetAllUnreadMsgCount


所有未读消息数清零

rd.Easemob.resetAllUnreadMsgCount();
说明:

所有未读消息数清零

参数:

返回:

回调:

示例:
rd.Easemob.resetAllUnreadMsgCount();

getMsgCount


获取消息数

var number = rd.Easemob.getMsgCount(username,type);
说明:

获取消息总数

参数:
  • username: (String) 用户名,群id,聊天室id, 必选
  • type: (聊天类型) 单聊:rd.Easemob.SINGL, 群聊:rd.Easemob.GROUP, 聊天室: rd.Easemob.ROOM, 必选
返回:
  • number: (Number) 消息总数
回调:

示例:
rd.Easemob.getMsgCount("zhangsan",rd.Easemob.SINGLE);

getAllMessages


获取所有消息内容(仅本地缓存)

var messages = getAllMessages(username, type);
说明:

获取所有消息内容(仅本地缓存)

参数:
  • username: (String) 用户名,群id,聊天室id, 必选
  • type: (聊天类型) 单聊:rd.Easemob.SINGL, 群聊:rd.Easemob.GROUP, 聊天室: rd.Easemob.ROOM, 必选
返回:
  • messages: (JSONArray) 消息内容, JSON数组对象;示例如下:依次为 文本(TXT)、语音(VOICE)、图片(IMAGE)、位置(LOCATION)、文件(FILE)和视频(VIDEO),根据字段'type'进行判断:

      [
          {
              "from":"username",
              "to":"username",
              "messageId":"messageId",
              "messageTime":"1448256183806",
              "messageBody":
                  {
                      "messageType":1,
                      "messageText":String
                  }
              }
          },
          {
              "from":"username",
              "to":"username",
              "messageId":"messageId",
              "messageTime":"1448256183806",
              "messageBody":
                  {
                      "messageType":5,
                      "displayName":String,
                      "localPath":String,
                      "remotePath":String,
                      "secretKey":String,
                      "duration":int
                  }
          },
          {
              "from":"username",
              "to":"username",
              "messageId":"messageId",
              "messageTime":"1448256183806",
              "messageBody":
                  {                
                      "messageType":2,
                      "displayName":String,
                      "localPath":String,
                      "remotePath":Number,
                      "secretKey":String
                  }
          },
          {
              "from":"username",
              "to":"username",
              "messageId":"messageId",
              "messageTime":"1448256183806",
              "messageBody"
                  {
                      "messageType":4,
                      "latitude":Number,
                      "longitude":Number,
                      "address":String
                  }
          },
          {
              "from":"username",
              "to":"username",
              "messageId":"messageId",
              "messageTime":"1448256183806",
              "messageBody":
                  {
                      "messageType":6,
                      "displayName":String,
                      "localPath":String,
                      "remotePath":String,
                      "secretKey":String,
                      "fileLength":Number
                  }
          },
          {
              "from":"username",
              "to":"username",
              "messageId":"messageId",
              "messageBody":
                  {
                      "messageType":3,
                      "displayName":String,
                      "localPath":String,
                      "remotePath":String,
                      "secretKey":String,
                      "fileLength":Number
                      "duration":int
                  }
          }
      ]
    
回调:

示例:
var messages = rd.Easemob.getAllMessages("zhangsan",rd.Easemob.SINGL);

clearConversation


清空会话聊天记录

rd.Easemob.clearConversation(username,type);
说明:

清空会话聊天记录

参数:
  • username: (String) 用户名,群id,聊天室id, 必选
  • type: (聊天类型) 单聊:rd.Easemob.SINGL, 群聊:rd.Easemob.GROUP, 聊天室: rd.Easemob.ROOM, 必选
返回:

回调:

示例:
    rd.Easemob.clearConversation("zhangsan",rd.Easemob.SINGLE);

deleteConversation


删除和某个user的整个的聊天记录(包括本地)

rd.Easemob.deleteConversation(username);
说明:

删除和某个user的整个的聊天记录(包括本地)

参数:
  • username: (String) 用户名,群id,聊天室id
返回:

回调:

示例:
rd.Easemob.deleteConversation("zhangsan");

removeMessage


删除当前会话的某条聊天记录, 注:android不支持

rd.Easemob.removeMessage(username,type,msgId);
说明:

删除当前会话的某条聊天记录, 注:android不支持

参数:
  • username: (String) username 或 groupid, 必选
  • type: (聊天类型) 单聊:rd.Easemob.SINGL, 群聊:rd.Easemob.GROUP, 聊天室: rd.Easemob.ROOM, 必选
  • msgId: (String) 某一条消息id, 必选
返回:

回调:

示例:
rd.Easemob.removeMessage("zhangsan",rd.Easemob.SINGLE, "1111");

deleteAllConversation


删除所有聊天记录(包括本地)

rd.Easemob.deleteAllConversation();
说明:

删除所有聊天记录(包括本地)

参数:

返回:

回调:

示例:
rd.easemob.deleteAllConversation();

setNotifyBySoundAndVibrate


设置是否启用新消息提醒(打开或者关闭消息声音和震动提示)

rd.Easemob.setNotifyBySoundAndVibrate(svtype);
说明:

设置是否启用新消息提醒(打开或者关闭消息声音和震动提示)

参数:
  • svtype: (String) 1: 开启, 2: 关闭; 必选
返回:

回调:

示例:
rd.Easemob.setNotifyBySoundAndVibrate("1");

setNoticeBySound


设置是否启用新消息声音提醒

rd.Easemob.setNoticeBySound(stype);
说明:

设置是否启用新消息声音提醒

参数:
  • stype: (String) 1: 开启, 2: 关闭;必选
返回:

回调:

示例:
rd.Easemob.setNoticeBySound("1");

setNoticedByVibrate


设置是否启用新消息震动提醒

rd.Easemob.setNoticedByVibrate(vtype);
说明:

设置是否启用新消息震动提醒

参数:
  • vtype: (String) 1: 开启, 2: 关闭;必选
返回:

回调:

示例:
rd.Easemob.setNoticedByVibrate("1");

setShowNotificationInBackgroud


设置后台接收新消息时是否通过通知栏提示

rd.Easemob.setShowNotificationInBackgroud(nbtype);
说明:

设置后台接收新消息时是否通过通知栏提示

参数:
  • nbtype: (String) 1: 开启, 2: 关闭;必选
返回:

回调:

示例:
rd.Easemob.setShowNotificationInBackgroud("1");

getContactUserNames


获取联系人列表, 注:andrid发送邀请好友,对方同意后,调用此方法,获取不到对方username,属于正常情况,当重新退出登录后,即可获取到对方username。此处需要开发者对邀请的好友自行保存。
rd.Easemob.getContactUserNames();

说明:

获取联系人列表, 注:andrid发送邀请好友,对方同意后,调用此方法,获取不到对方username,属于正常情况,当重新退出登录后,即可获取到对方username。此处需要开发者对邀请的好友自行保存。

参数:

返回:

回调:

回调方法:(stateCallback) 回调js的方法名

示例:
rd.Easemob.getContactUserNames();

addContact


添加联系人

rd.Easemob.addContact(username,reason);
说明:

添加联系人, 好友在未处理情况下,再次调用,接口回调内容一致

参数:
  • username: (String) 用户名, 必选
  • reason: (String) 理由, 必选
返回:

回调:

回调方法:(stateCallback) 回调js的方法名

示例:
rd.Easemob.addContact("zhangsan","喜欢你");

deleteContact


删除好友

rd.Easemob.deleteContact(username);
说明:

删除好友

参数:
  • username: (String) 用户名, 必选
返回:

回调:

回调方法:(stateCallback) 回调js的方法名

示例:
rd.Easemob.deleteContact("zhangsan");

acceptInvitation


同意好友请求

rd.Easemob.acceptInvitation(username);
说明:

同意好友请求

参数:
  • username: (String) 用户名, 必选
返回:

回调:

回调方法:(stateCallback) 回调js的方法名

示例:
rd.Easemob.acceptInvitation("zhangsan");

refuseInvitation


拒绝好友请求

rd.Easemob.refuseInvitation(username, reason);
说明:

拒绝好友请求

参数:
  • username: (String) 用户名, 必选
  • reason: (String) 理由, 必选
返回:

回调:

回调方法:(stateCallback) 回调js的方法名

示例:
rd.Easemob.refuseInvitation("zhangsan", "不加陌生人");

getBlackListUsernames


获取好友的黑名单列表

rd.Easemob.getBlackListUsernames();
说明:

获取好友的黑名单列表

参数:

返回:

回调:

回调方法:(stateCallback) 回调js的方法名

示例:
rd.Easemob.getBlackListUsernames();

addUserToBlackList


把用户加入到黑名单

rd.Easemob.addUserToBlackList(username);
说明:

把用户加入到黑名单

参数:
  • username: (String) 用户名, 必选
返回:

回调:

回调方法:(stateCallback) 回调js的方法名

示例:
rd.Easemob.addUserToBlackList("zhangsan");

deleteUserFromBlackList


把用户从黑名单移除

rd.Easemob.deleteUserFromBlackList(username);
说明:

把用户从黑名单移除

参数:
  • username: (String) 用户名, 必选
返回:

回调:

示例:
rd.Easemob.deleteUserFromBlackList("zhangsan");

createPrivateGroup


创建私有群, 注: 2.2版本, 邀请好友加入此群时,不需要对方同意, 对方会直接进到群里

rd.Easemob.createPrivateGroup(groupname, info, members, allowInvite, maxNum, other);
说明:

创建私有群; 私有群,不能被搜索到,只能通过群主加人进群,或者设置了allowInvite为true,即允许群成员邀 请,那么群成员也可以邀请群外面的人进入群聊,此种群群成员可以邀请,不能踢人,类似微信群。注: 2.2版本, 邀请好友加入此群时,不需要对方同意, 对方会直接进到群里

参数:
  • groupname: (String) 群聊的名称,必选
  • info: (String) 群聊简介,必选
  • members: (String) 群聊成员,为空时这个创建的群组只包含自己(字符串数组[{"username":"a"},{"username":"b"}...]),必选
  • allowInvite: (String) 群是否允许群成员邀请人进群, 0:不允许, 1:允许; 必选(只能传入0或1)
  • maxNum: (String) 群的最大人数, 缺省是200人,最大为2000, 如果给-1,是unlimited
  • other: (String) 附加消息,可选
返回:

回调:

回调方法:(stateCallback) 回调js的方法名

示例:
rd.Easemob.createPrivateGroup("吉他群", "吉他爱好者", "[{\"username\":\"a\"},{\"username\":\"b\"}]", "0", "500", "呵呵呵");

createPublicGroup


创建公开群, 注: 2.2版本, 邀请好友加入此群时,不需要对方同意, 对方会直接进到群里

rd.Easemob.createPublicGroup(groupname, info, members, allowInvite, maxNum, other);
说明:

创建公开群;公开群可以被用户搜索到,并且可以直接加入或者申请加入, 注: 2.2版本, 邀请好友加入此群时,不需要对方同意, 对方会直接进到群里

参数:
  • groupname: (String) 群聊的名称,必选
  • info: (String) 群聊简介,必选
  • members: (String) 群聊成员,为空时这个创建的群组只包含自己(字符串数组["a","b"]),必选
  • allowInvite: (String) 用户加入此群时,0时直接join即可加入进来,否则需要申请加入,群主同意后才行, 默认为1 必选
  • maxNum: (String) 群的最大人数, 缺省是200人,最大为2000, 如果给-1,是unlimited
  • other: (String) 附加消息,可选
返回:

回调:

回调方法:(stateCallback) 回调js的方法名

示例::
rd.Easemob.createPublicGroup("吉他群", "吉他爱好者", "[{\"username\":\"a\"},{\"username\":\"b\"}]", "0", "500", "呵呵呵");

addUsersToGroup


群主加人调用此方法

rd.Easemob.addUsersToGroup(groupid, members, other);
说明:

群主加人调用此方法

参数:
  • groupid: (String) 群聊id, 必选
  • members: (String) 群聊新成员(字符串数组["a","b"]), 必选
  • other: (String) 附加消息, 可选
返回:

回调:

回调方法:(stateCallback) 回调js的方法名

示例:
rd.Easemob.addUsersToGroup("1111", "[\"lisi\",\"zhangsan\"]", "呵呵呵");

acceptApplication


同意加群申请

rd.Easemob.acceptApplication(username, groupid, groupName);
说明:

同意加群申请, 群主使用该方法同意其他用户的加群申请

参数:
  • username: (String) 用户名, 必选
  • groupid: (String) 群聊id, 必选
  • groupName: (String) 群名称, 必选
返回:

回调:

回调方法:(stateCallback) 回调js的方法名

示例:
rd.Easemob.acceptApplication("张三", "1111", "group");

declineApplication


拒绝加群申请

rd.Easemob.declineApplication(username, groupid, groupName, reason);
说明:

拒绝加群申请, 群主使用该方法拒绝其他用户的加群申请

参数:
  • username: (String) 被拒绝的用户的用户名, 必选
  • groupid: (String) 群聊id, 必选
  • groupName: (String) 群名称, 必选
  • reason: (String) 拒绝理由, 必选
返回:

回调:

回调方法:(stateCallback) 回调js的方法名

示例:
rd.Easemob.declineApplication("张三", "1111", , "group", "不加人");

inviteUser


成员邀请

rd.Easemob.inviteUser(groupid, members, other);
说明:

成员邀请; 私有群里,如果开放了群成员邀请,群成员邀请调用下面方法

参数:
  • groupid: (String) 群聊id, 必选
  • members: (String) 群聊新成员(字符串数组["a","b"]), 必选
  • other: (String) 附加消息, 可选
返回:

回调:

回调方法:(stateCallback) 回调js的方法名

示例:
rd.Easemob.inviteUser("1111", "[\"lisi\",\"zhangsan\"]", "呵呵");

removeUserFromGroup


群聊减人

rd.Easemob.removeUserFromGroup(groupid, username);
说明:

群聊减人

参数:
  • groupid: (String) 群聊id, 必选
  • username: (String) 群聊成员用户名, 必选
    返回:
回调:

回调方法:(stateCallback) 回调js的方法名

示例:
rd.Easemob.removeUserFromGroup("1111", "zhangsan");

joinGroup


加入某个群聊

rd.Easemob.joinGroup(groupid, groupName, reason);
说明:

加入某个群聊; 只能用于加入公开群

参数:
  • groupid: (String) 群聊id, 必选
  • groupName: (String) 群名称, 必选
  • reason: (String) 加入群聊理由, 必选
返回:

回调:

回调方法:(stateCallback) 回调js的方法名

示例:
rd.Easemob.joinGroup("1111", "1111", "lisi");

exitFromGroup


退出群聊

rd.Easemob.exitFromGroup(groupid);
说明:

退出群聊

参数:
  • groupid: (String) 群聊id, 必选
返回:

回调:

回调方法:(stateCallback) 回调js的方法名

示例:
rd.Easemob.exitFromGroup("1111");

exitAndDeleteGroup


解散群聊 rd.Easemob.exitAndDeleteGroup(groupid);

说明:

解散群聊

参数:
  • groupid: (String) 群聊id, 必选
返回:

回调:

回调方法:(stateCallback) 回调js的方法名

示例:
rd.Easemob.exitAndDeleteGroup("1111");

getGroupsFromServer


从服务器获取自己加入的和创建的群聊列表

rd.Easemob.getGroupsFromServer();
说明:

从服务器获取自己加入的和创建的群聊列表

参数:

返回:

回调:

回调方法:(stateCallback) 回调js的方法名

示例:
rd.Easemob.getGroupsFromServer();

getAllNativeGroups


从本地加载群聊列表

rd.Easemob.getAllNativeGroups();
说明:

从本地加载群聊列表

参数:

返回:

(JSONArray) json数组对象,格式如下:

    [
        {
            "grounpId":"",
            "grounpSubject":""    // 群主题
        },
        ...
    ]
回调:

示例:
rd.Easemob.getAllNativeGroups();

getAllPublicGroupsFromServer


从服务器获取所有公开群列表

rd.Easemob.getAllPublicGroupsFromServer();
说明:

从服务器获取所有公开群列表

参数:

返回:

回调:

回调方法:(stateCallback) 回调js的方法名

示例:
rd.Easemob.getAllPublicGroupsFromServer();

getGroupFromNative


根据群聊ID从本地获取群聊信息

rd.Easemobr.getGroupFromNative(groupid);
说明:

根据群聊ID从本地获取群聊信息

参数:
  • groupid: (String) 群id, 必选
返回:

(JSONObject) json Object对象

回调:

示例:
rd.Easemobr.getGroupFromNative("1111");

getGroupFromServer


根据群聊ID从服务器获取群聊信息

rd.Easemob.blockGroupMessage(groupid);
说明:

根据群聊ID从服务器获取群聊信息

参数:
  • groupid: (String) 群id, 必选
返回:

回调:

回调方法:(stateCallback) 回调js的方法名

示例:
rd.Easemob.getGroupFromServer("1111");

blockGroupMessage


屏蔽群消息后,就不能接收到此群的消息

rd.Easemob.blockGroupMessage(groupid);
说明:

屏蔽群消息后,就不能接收到此群的消息 (群创建者不能屏蔽群消息)(还是群里面的成员,但不再接收消息)

参数:
  • groupid: (String) 群id, 必选
返回:

回调:

回调方法:(stateCallback) 回调js的方法名

示例:
rd.Easemob.blockGroupMessage("1111");

unblockGroupMessage


取消屏蔽群消息,就可以正常收到群的所有消息

rd.Easemob.unblockGroupMessage(groupid);
说明:

取消屏蔽群消息,就可以正常收到群的所有消息

参数:
  • groupid: (String) 群id, 必选
返回:

回调:

回调方法:(stateCallback) 回调js的方法名

示例:
rd.Easemob.unblockGroupMessage("1111");

changeGroupName


修改群组名称

rd.Easemob.changeGroupName(groupid, groupname);
说明:

修改群组名称

参数:
  • groupid: (String) 群id, 必选
  • groupname: (String) 改变后的群组名称, 必选
返回:

回调:

回调方法:(stateCallback) 回调js的方法名

示例:
rd.Easemob.changeGroupName("1111", "新名字");

setReceiveNotNoifyGroup


群聊不提醒只显示数目

rd.Easemob.setReceiveNotNoifyGroup(groupids);
说明:

群聊不提醒只显示数目

参数:
  • groupids: (String) Group的id, json格式的字符串数组, 必选
返回:

回调:

示例:
rd.Easemob.setReceiveNotNoifyGroup("[\"1111\",\"2222\"]");

blockUser


将用户加到群组的黑名单,被加入黑名单的用户无法加入群,无法收发此群的消息。(只有群主才能设置群的黑名单)

rd.Easemob.blockUser(groupid,username);
说明:

将用户加到群组的黑名单,被加入黑名单的用户无法加入群,无法收发此群的消息。 (只有群主才能设置群的黑名单)

参数:
  • groupid: (String) 群组的id, 必选
  • username: (String) 待屏蔽的用户名, 必选
返回:

回调:

回调方法:(stateCallback) 回调js的方法名

示例:
rd.Easemob.blockUser("1111","zhangsan");

getBlockedUsers


获取群组的黑名单用户列表, 注:只有群主才能调用此函数

rd.Easemob.getBlockedUsers(groupid);
说明:

获取群组的黑名单用户列表; 注:只有群主才能调用此函数

参数:
  • groupid: (String) 群id, 必选
返回:

回调:

回调方法:(stateCallback) 回调js的方法名

示例:
rd.Easemob.getBlockedUsers("1111");

addListener


添加监听

rd.Easemob.addListener(callback);
说明:

添加监听

参数:
返回:

回调:

示例:
function stateCallback(info){
    alert("code:"+info.code+",content:"+info.content);
}
rd.Easemob.addListener(stateCallback);

removeListener


移除监听

rd.Easemob.removeListener();
说明:

移除监听

参数:

返回:

回调:

示例:
rd.Easemob.removeListener();

Info


JSON对象,回调:格式参数:

Info
{
    property Number status
    property String code
    property String content    
}
说明:

通过addListener方法注册的回调方法。要收到回调的信息,必须调用此方法,进行回调方法注册。

属性:
  • status: (Number) 状态码 1-成功 2-失败
  • code: ( 回调状态常量 ) 状态码。
  • content: (String) 回调:内容,为json格式的字符串

stateCallback


状态回调:

function stateCallback(info){
    alert(info);
}
说明:

当登录,收到消息,添加好友时此回调方法会被调用,并回调状态和消息内容。

参数:

  • info: ( Info ) 必选 回调的JSON对象