EasemobUI


环信将基于移动互联网的即时通讯能力,如单聊、群聊、发语音、发图片、发位置,通过云端开放的 Rest API 和客户端 SDK 包的方式提供给开发者和企业。让App内置聊天功能和以前网页中嵌入分享功能一样简单。环信全面支持Android、iOS,在流量、电量、长连接、语音、位置、安全等能力做了极致的优化,让移动开发者摆脱繁重的移动IM通讯底层开发,极大限度地缩短产品开发周期,极短的时间内让App拥有移动IM能力。(注:环信、图片标注、cityselector不可同时使用,否则会引起编译失败)

如何在平台创建应用

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

image

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

2.登录 如下图:
image

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

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

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

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

回调状态常量(Number):

方法:

对象:

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

回调方法:

rd.EasemobUI.CODE_LOGIN


登录成功

回调内容:

成功:

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

失败:

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

rd.EasemobUI.CODE_LOGINOUT_SUCCEED


登出

回调内容:

成功:

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

失败:

{"code":1, "status":0, "content":""}

rd.EasemobUI.CODE_NEW_MESSAGE


收到新消息

回调内容:

文字消息:

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

语音消息:

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

图片消息:

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

位置消息:

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

文件消息:

{"code":2, "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":2, "status":1, "content":{"from":"username","to":"username","messageId":"messageId","messageBody":{"messageType":3,"displayName":String,"localPath":String,"remotePath":String,"secretKey":String,"fileLength":Number}}}

rd.EasemobUI.CODE_CMD_MESSAGE_RECEIV


收到透传消息

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

rd.EasemobUI.CODE_CONTACT_USERNAMES


获取联系人列表

回调内容:

成功:

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

失败:

{"code":4, "status":0, "content":""}

rd.EasemobUI.CODE_ADD_CONTACT


添加联系人

回调内容:

成功:

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

失败:

{"code":5, "status":0, "content":{"username":"username"}}

rd.EasemobUI.CODE_DELETE_CONTACT


删除联系人

回调内容:

成功:

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

失败:

{"code":6, "status":0, "content":{"username":"username"}}

rd.EasemobUI.CODE_ACCEPT_INVITATION


接受好友请求

回调内容:

成功:

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

失败:

{"code":7, "status":0, "content":{"username":"username"}}

rd.EasemobUI.CODE_REFUSE_INVITATION


拒绝好友请求

回调内容:

成功:

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

失败:

{"code":8, "status":0, "content":{"username":"username"}}

rd.EasemobUI.CODE_REQUEST_ADD_YOU


收到好友请求

回调内容:
{"code":9, "status":1, "content":{"username":"username"}}

rd.EasemobUI.CODE_ACCEPT_YOU_REQUEST


好友请求被接受

回调内容:
{"code":10, "status":1, "content":{"username":"username"}}

rd.EasemobUI.CODE_REFUSE_YOU_REQUEST


好友请求被拒绝

回调内容:
{"code":11, "status":1, "content":{"username":"username"}}

rd.EasemobUI.CODE_DELETEED


被好友删除

回调内容:
{"code":12, "status":1, "content":{"username":"username"}}

rd.EasemobUI.CODE_LOCAL_PUSH


收到本地推送消息

回调内容:
{"code":13, "status":1, "content":userinfo}

rd.EasemobUI.CODE_REMOTE_PUSH


收到离线推送消息

回调内容:
{"code":14, "status":1, "content":userinfo}

rd.EasemobUI.CODE_SEND_CMD


发送透传消息成功

回调内容:

成功:

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

失败:

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

initEasemob


初始化

rd.EasemobUI.initEasemob(appkey,apnsName);
说明:

初始化环信通信SDK

参数:
  • appkey: (String) 必选,申请应用时的appkey
  • apnsName: (String) 必选,需要使用的APNS证书名字(需要与后台上传时的APNS证书名字相同, 客户端打包时的证书, 需要与服务器后台的证书一一对应),此参数为iOS专用,Android可传空字符串。证书制作上传步骤
    返回值:
    无返回值
示例代码:
var easemobManager = rd.EasemobUI;
easemobManager.initEasemob('','');

addListener


添加监听

rd.EasemobUI.addListener(function);
说明:

添加监听事件,添加后可以收到插件发出的通知消息

参数:
  • function: (stateCallback) 必选,回调js的方法名
    返回:
    回调:
示例代码:
function stateCallback(info){
    alert(info);
}
var easemobManager = rd.EasemobUI;
easemobManager.addListener(stateCallback);

removeListener


移除监听事件

rd.EasemobUI.removeListener();
说明:

移除监听事件,移除后将无法收到插件发出的通知消息

参数:

返回:

回调:

示例代码:
var easemobManager = rd.EasemobUI;
easemobManager.removeListener();

login


登录

rd.EasemobUI.login(userName,password);
说明:

用户登录, 若服务器没有此用户则自动注册

参数:
  • userName: (String) 必选,用户名

    用户名 规则:

    • 环信‘用户名’可以使用 1.英文字母和数字的组合 2.纯英文字母 3.纯数字

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

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

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

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

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

  • password: (String) 必选,密码

    返回:

回调:

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

示例代码:
var easemobManager = rd.EasemobUI;
easemobManager.login("userName", "password");

logout


退出登录

rd.EasemobUI.logout();
说明:

退出登录

参数:

返回:

示例代码:
var easemobManager = rd.EasemobUI;
easemobManager.logout();

enterChat


打开聊天窗口。注: 此界面的返回按键在iOS和Android端会有差异; iOS返回按键是iOS风格,Android的返回按键是Android风格。其他界面效果差异同理。

rd.EasemobUI.enterChat(userName);
说明:

打开与指定用户聊天的窗口,开始聊天

参数:
  • userName: (String) 必选,要聊天的人的用户名
    返回:
回调:

示例代码:
var easemobManager = rd.EasemobUI;
easemobManager.enterChat("xxx");

showRecentChat


打开最近联系人列表窗口。

rd.EasemobUI.showRecentChat(title);
说明:

打开最近联系人列表界面

参数:
  • title: (String) 必选,窗口标题
    返回:
回调:

示例代码:
var easemobManager = rd.EasemobUI;
easemobManager.showRecentChat("最近联系人");

setUserInfo


设置用户信息

rd.EasemobUI.setUserInfo(userName, nickName, avatarURL);
说明:

设置用户昵称和头像信息

参数:
  • userName: (String) 必选,要设置的用户名
  • nickName: (String) 必选,昵称
  • avatarURL: (String) 必选,头像链接地址,头像仅支持png,jpg格式。
    返回:
回调:

示例代码:
var easemobManager = rd.EasemobUI;
easemobManager.setUserInfo("xxx","xxx", "xxx");

sendCmd


发送透传消息

rd.EasemobUI.sendCmd(userName, chatType, action);
说明:

发送透传消息

参数:
  • username: (String) 必选,要发送的用户名
  • chatType: (Number) 必选,聊天类型,只支持单聊,值为0
  • action: (String) 必选,action可以自定义,在广播接收时可以收到
    返回:
回调:

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

示例代码:
var easemobManager = rd.EasemobUI;
easemobManager.sendCmd("userName",0, "action", {"key": "value"});

getUnreadMsgCount


获得未读消息数

rd.EasemobUI.getUnreadMsgCount(userName, type);
说明:

根据聊天类型获得未读消息数。

参数:
  • userName: (String) 必选,用户名,群id,聊天室id
  • type: (String) 必选,只支持单聊,值为0
    返回:
    (Number) 未读消息数
    回调:
示例代码:
var easemobManager = rd.EasemobUI;
var num = easemobManager.getUnreadMsgCount("xxx","xxx");

resetUnreadMsgCount


未读消息数清零

rd.EasemobUI.resetUnreadMsgCount(userName, type);
说明:

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

参数:
  • userName: (String) 必选,用户名,群id,聊天室id
  • type: (String) 必选,只支持单聊,值为0
    返回:
    回调:
示例代码:
var easemobManager = rd.EasemobUI;
easemobManager.resetUnreadMsgCount("xxx","xxx");

getAllUnreadMsgCount


获取所有未读消息

rd.EasemobUI.getAllUnreadMsgCount();
说明:

获得所有未读消息数

参数:

无参数

返回:

(Number) 未读消息数

回调:

示例代码:
var easemobManager = rd.EasemobUI;
var num = easemobManager.getAllUnreadMsgCount();

resetAllUnreadMsgCount


所有未读消息清零

rd.EasemobUI.resetAllUnreadMsgCount();
说明:

所有未读消息数清零

参数:

返回:

回调:

示例代码:
var easemobManager = rd.EasemobUI;
easemobManager.resetAllUnreadMsgCount();

getContactUserNames


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

rd.EasemobUI.getContactUserNames();
说明:

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

参数:

返回:

回调:

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

示例代码:
var easemobManager = rd.EasemobUI;
easemobManager.getContactUserNames();

addContact


添加联系人

rd.EasemobUI.addContact(userName, reason);
说明:

向指定用户发出邀请,指定用户接受邀请后会加入此用户的联系人列表

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

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

示例代码:
var easemobManager = rd.EasemobUI;
easemobManager.addContact("xx","xx");

deleteContact


删除好友

rd.EasemobUI.deleteContact(userName);
说明:

由当前联系人列表中删除指定联系人

参数:
  • userName: (String) 必选,要删除的联系人用户名
    返回:
回调:

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

示例代码:
var easemobManager = rd.EasemobUI;
easemobManager.deleteContact("xx");

acceptInvitation


同意好友请求

rd.EasemobUI.acceptInvitation(userName);
说明:

同意好友请求,同意后会被加入好友的联系人列表

参数:
  • userName: (String) 必选,发送请求的用户名
    返回:
回调:

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

示例代码:
var easemobManager = rd.EasemobUI;
easemobManager.acceptInvitation("xx");

refuseInvitation


拒绝好友请求

rd.EasemobUI.refuseInvitation(userName, reason);
说明:

拒绝好友请求,拒绝后将不会被加入此用户联系人列表

参数:
  • userName: (String) 必选,发送请求的用户名
  • reason: (String) 必选,拒绝理由
    返回:
示例代码:
var easemobManager = rd.EasemobUI;
easemobManager.refuseInvitation("xx", "xx");

setNavigationBarBackgroundColor


设置导航条背景颜色

rd.EasemobUI.setNavigationBarBackgroundColor(r, g, b);
说明:

设置导航条背景RGB颜色

参数:
  • r: (Number) 必选,r颜色值
  • g: (Number) 必选,g颜色值
  • b: (Number) 必选,b颜色值
    返回:
回调:

示例代码:
var easemobManager = rd.EasemobUI;
easemobManager.setNavigationBarBackgroundColor(255, 255, 255);

setNavigationBarItemColor


设置导航条按钮颜色

rd.EasemobUI.setNavigationBarItemColor(r, g, b);
说明:

设置导航条按钮RGB颜色, (注:此方法仅iOS支持; Android不支持, 在Android环境下调用, 没有效果)

参数:
  • r: (Number) 必选,r颜色值
  • g: (Number) 必选,g颜色值
  • b: (Number) 必选,b颜色值
返回:

回调:

示例代码:
var easemobManager = rd.EasemobUI;
easemobManager.setNavigationBarItemColor(255, 255, 255);

setNavigationBarTitleColor


设置导航条标题颜色

rd.EasemobUI.setNavigationBarTitleColor(r, g, b);
说明:

设置导航条标题RGB颜色

参数:
  • r: (Number) 必选,r颜色值
  • g: (Number) 必选,g颜色值
  • b: (Number) 必选,b颜色值
返回:

示例代码:
var easemobManager = rd.EasemobUI;
easemobManager.setNavigationBarTitleColor(255, 255, 255);

setUIImage


设置环信界面自定义图片

rd.EasemobUI.setUIImage(key, value);
说明:

设置环信界面自定义图片

参数:
  • key: (String) 必选,自定义图片的key,可设置的值有1,"back_button": 返回按钮;2,"receiver_bubble_bg": 收到消息内容的背景;3,"sender_bubble_bg": 发送消息内容的背景;4,"placeholder_avatar": 默认用户头像;
  • value: (String) 必选,自定义图片的协议路径
    返回:

示例代码:
var easemobManager = rd.EasemobUI;
easemobManager.setUIImage("placeholder_avatar", "cpts://main/img/avatar.png");

Info


JSON对象,回调格式参数

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

通过addListener方法添加的回调方法的参数内容。

属性:
  • code: ( 回调状态常量 ) 状态码。
  • content: (String) 回调内容,为json格式的字符串

stateCallback


状态回调.

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

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

参数:
  • info: ( Info ) 必选 回调方法返回的内容