easeChat
来自于:环信官方立即使用
注册、登录、退出、监听
创建群组、添加/删除好友、获取好友列表
消息、会话、聊天
音视频通话、会议
推送通知
附录
论坛示例
为帮助用户更好更快的使用模块,论坛维护了一个示例,示例中包含示例代码、知识点讲解、注意事项等,供您参考。
概述
关于环信
环信是北京易掌云峰科技有限公司旗下一家企业级服务软件提供商,环信成立于2013年4月,并于2016年荣膺“Gartner 2016 Cool Vendor”。产品有国内上线最早规模最大的即时通讯云平台——环信即时通讯云,移动端最佳实践的全媒体智能云客服平台—环信移动客服。截至2016年上半年,环信即时通讯云共服务了82149家App客户,环信移动客服共服务了29437家企业用户.
主要产品:
环信移动客服——全媒体智能云客服倡导者。
环信即时通讯云——国内最大的即时通讯云PaaS平台。
模块概览
本模块封装了环信即时通讯云的开放SDK。本模块封装的接口都是纯功能类接口,主要分三大类:
1,注册、登录、退出、监听
2,创建群组、添加/删除好友、获取好友列表
3,消息、会话、聊天
功能详情参考模块接口。
新手上路
1. 注册
2. 服务器端集成
3. 客户端集成(模块使用)
使用此模块之前必须先配置 config 文件,配置方法如下:
- 名称:easeChat
- 参数:appKey、ios_apnsCertName
- 配置示例:
<feature name="easeChat">
<param name="appKey" value="1154170221178369#apicloud" />
<param name="ios_apnsCertName" value="81qz3dBYB5q2nGji4IYrawr1" />
<param name="enableDnsConfig" value="true" />
<param name="chatPort" value= "6718"/>
<param name="chatServer" value="im2.ssy.citics.com" />
<param name="restServer" value="a1.ssy.citics.com:88" />
<param name="dnsURL" value="" />
<param name="miAppId" value="" />
<param name="miAppKey" value="" />
</feature>
字段描述:
appKey:区别 APP 的标识,参考开发者注册及管理后台。
ios_apnsCertName: iOS 中推送证书名称,参考制作与上传推送证书。如果不需要实现离线推送功能,请忽略此字段。
**enableDnsConfig**:(可选项)是否允许使用DNS,当使用了自己私有服务器请将此参数配置为false; 默认为true
**chatPort**: (可选项)IM服务器端口,enableDnsConfig 为 false 时生效
**chatServer**:(可选项)IM服务器地址,enableDnsConfig 为 false 时生效
**restServer**:(可选项)REST服务器地址,enableDnsConfig 为 false 时生效
**dnsURL**:(可选项)DNS URL 地址,enableDnsConfig 为 true 时生效
**miAppId**:(可选项) 小米推送的appid
**miAppKey**:(可选项) 小米推送的appkey
在android平台配置如下
<meta-data
name="EASEMOB_APPKEY"
value="1176170302115001#test" />
value:为appKey
环信为 IM 部分提供了 APNS 推送功。详情参考APNS离线推送。
如何使用远程推送
集成推送功能流程如下文所示。此过程中涉及到的 AppID 即为 Bundle Identifie,与 APICloud 平台上的包名是同一个东西,在 APICloud 平台上应用的概览里可以查看。
登录苹果开发者中心申请推送证书,本过程操作详情参考配置环信推送证书
将上一步生成的 p12 证书上传到环信:登录环信管理后台,找到要上传证书的Appkey,点击进入详情。选择“推送证书”,然后选择“iOS”,为证书起名,并记住名称,并配置在config.xml文件中(详情参考上文config 文件配置方法)。选择上传证书,将上一步中生成的P12文件上传,并设置导出时设置的密码。选择证书类型,此处是“开发环境”(如果之前用的是production,则此处应该选择生产)。填写应用包名,应为bundle id,点击上传,完成上传证书操作。本过程操作详情参考上传环信推送证书
将 1 过程中生成的 provisioning profile 文件和证书上传 APICloud 平台,即可在 APICloud 平台云编译出 ipa 安装包并安装(正式版发布到苹果商店,通过苹果商店下载安装)
以上步骤都已经实现后,还需要使用您 App 的用户允许通知,才能收到远程推送。您可以在设备的设置应用中,查看当前App是否允许通知。
代码中如何获取远程推送的内容
点击通知栏的远程推送时,如果此时 App 已经被系统冻结,则APICloud会将本次推送的内容通过事件监听回调的方式交给开发者。具体使用如下:
api.addEventListener({
name: 'noticeclicked'
}, function(ret) {
if (ret && ret.value) {
var type = ret.type;//0APICloud收到的推送内容,1模块开发者自定义的
var result = ret.value;//推送内容
}
})
value数据格式如下:
{
“localNotification”:false,//是否是本地通知,若为true则下文数据格式同addMessageListener接口监听receive事件回调的数据格式
"aps":{
"alert":{
"body":"您有一条新消息" // 消息内容
},
"badge":1, // 角标数
"sound":"default" // 提示音
},
"e":"自定义推送扩展",//自定义推送扩展
"f":"6001", // 消息发送方
"t":"6006", // 消息接收方
"m":"373360335316321408", // 消息id
"g":"1421300621769" // 群组id(如果是单聊则没有该字段)
}
如果 App 当前为活跃状态且未被系统冻结(按home键2分钟内app在后台运行状态),则您可通过在 addMessageListener 接口中监听 receive 事件捕获该消息,详情参考 addMessageListener 接口说明。此时若允许本地通知,则模块会弹出本地通知的提示框,用户点击该提示框,iOS系统会启动本App,同时api.addEventListener也会受到消息。
证书到期后,要更换新的推送证书,需要在环信管理后台将旧的删除,之后重新上传,上传时的命名要与旧证书的命名一致。一个appkey下可以传多个证书,这就可以实现夸App聊天,在不同App中初始化sdk的时候,指定不同的推送证书,每个证书对应当前App的bundle id,这样,用户在登录不同的App的时候就会绑定到不同的推送证书,从而实现夸App的聊天和推送。
注意:本模块 iOS 平台上最低适配系统版本为 iOS 9.0
android 平台集成推送详解
小米推送
- config.xml文件中配置miAppId和miAppKey
- 在APICloud后台添加mipush模块
- 在环信后台上传小米推送所需的证书
华为推送
- 在APICloud后台添加huaweiPush模块
- 从此模块中获取华为的token,并调用sendHMSPushTokenToServer接口;
- 在环信后台上传华为推送所需的证书
重要提示:
- android从1.0.9版本开始,编译需要使用升级环境编译
Android 推送通道设置,不进行此设置android8.0以及以上系统可能收不到推送消息
- 配置示例:
<feature name="UIEaseChat">
<param name="androidChannelId" value="11"/>
<param name="androidChannel" value="appchannel"/>
<param name="androidChannelDes" value="notification description"/>
</feature>
字段描述:
androidChannelId:安卓8.0推送渠道配置,渠道id。后台通过此渠道id推送
androidChannel:安卓8.0推送渠道配置,渠道名称。
androidChannelDes:安卓8.0推送渠道配置,渠道描述。
模块接口
easeRegister
注册模式分两种,开放注册和授权注册。
- 只有开放注册时,才可以客户端注册。开放注册是为了测试使用,正式环境中不推荐使用该方式注册环信账号。
- 授权注册的流程应该是您服务器通过环信提供的 REST API 注册,之后保存到您的服务器或返回给客户端。
easeRegister({params},callback(ret, err))
params
username:
- 类型:字符串
- 描述:用户名
password:
- 类型:字符串
- 描述:密码
callback(ret, err)
ret:
- 类型:JSON 对象
- 描述:结果
- 内部字段:
{
status: true //布尔类型;是否注册成功,true|false
}
err:
- 类型:JSON 对象
- 描述:结果
- 内部字段:
{
code: 1, //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var easeChat = api.require('easeChat');
easeChat.easeRegister({
username: '',
password: ''
},function(ret, err) {
if (ret.status) {
api.alert({ msg:'注册成功'});
} else {
api.alert({ msg:JSON.stringify(err)});
}
});
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
login
登录接口
login({params},callback(ret, err))
params
username:
- 类型:字符串
- 描述:用户名
password:
- 类型:字符串
- 描述:密码
autoLogin:
- 类型:布尔
- 描述:是否开启自动登录(仅支持ios)
- 默认:false
说明:
自动登录:即首次登录成功后,不需要再次调用登录方法,在下次 APP 启动时,SDK 会自动为您登录。并且如果您自动登录失败,也可以读取到之前的会话信息。
本模块自动登录属性默认是关闭的,需要您在登录时自定义设置,以便您在下次 APP 启动时不需要再次调用环信登录,并且能在没有网的情况下得到会话列表。
自动登录在以下几种情况下会被取消:
用户调用了模块的登出动作;
用户在别的设备上更改了密码,导致此设备上自动登录失败;
用户的账号被从服务器端删除;
用户从另一个设备登录,把当前设备上登录的用户踢出。
所以,在您调用登录方法前,应该先调用 isAutoLogin 接口判断是否设置了自动登录,如果设置了,则不需要您再调用。可通过 addAutoLoginListener 接口监听自动登录完成的回调。
callback(ret, err)
ret:
- 类型:JSON 对象
- 描述:登录结果
- 内部字段:
{
status: true //布尔类型;是否登录成功,true|false
}
err:
- 类型:JSON 对象
- 描述:登录结果
- 内部字段:
{
code: 1, //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var easeChat = api.require('easeChat');
easeChat.login({
username: '',
password: '',
autoLogin: true
},function(ret, err) {
if (ret.status) {
api.alert({ msg:'登录成功'});
} else {
api.alert({ msg:JSON.stringify(err)});
}
});
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
isAutoLogin
是否设置了自动登录(仅支持ios)
isAutoLogin(callback(ret))
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true //布尔类型;是否设置了自动登录,true|false
}
示例代码
var easeChat = api.require('easeChat');
easeChat.isAutoLogin(function(ret, err) {
if (ret.status) {
alert('已开启自动登录');
} else {
alert('未开启自动登录');
}
});
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
logout
退出登录
退出登录分两种类型:主动退出登录和被动退出登录。
- 主动退出登录:调用模块的退出接口;
- 被动退出登录:1. 正在登录的账号在另一台设备上登录;2. 正在登录的账号被从服务器端删除。可通过 addAccountListener 接口监听。
在被动退出时模块内部处理,不需要调用本接口。
logout(callback(ret, err))
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true //布尔类型;是否成功退出登录,true|false
}
err:
- 类型:JSON 对象
- 描述:退出登录失败结果
- 内部字段:
{
code: 1, //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var easeChat = api.require('easeChat');
easeChat.logout(function(ret, err) {
if (ret.status) {
api.alert({ msg:'登录成功'});
} else {
api.alert({ msg:JSON.stringify(err)});
}
});
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
addConnectionListener
连接服务器的状态变化事件的监听
有以下几种情况, 会引起该方法的调用:
- 登录成功后, 手机无法上网时, 会调用该回调
- 登录成功后, 网络状态变化时, 会调用该回调
当掉线时,SDK 会自动重连,只需要监听重连相关的回调,无需进行任何操作。
addConnectionListener(callback(ret))
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
state: 'connected' //字符串类型;网络连接状态,取值范围如下:
//connected:已连接
//disconnected:未连接
}
示例代码
var easeChat = api.require('easeChat');
easeChat.addConnectionListener(function(ret) {
alert(JSON.stringify(ret));
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
addAutoLoginListener
自动登录完成时的回调事件监听(仅支持ios)
addAutoLoginListener(callback(ret, err))
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
complete: true //布尔类型;自动登录是否完成,true|false
}
err:
- 类型:JSON 对象
- 描述:自动登录失败结果
- 内部字段:
{
code: 1, //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var easeChat = api.require('easeChat');
easeChat.addAutoLoginListener(function(ret) {
if (ret.complete) {
api.alert({ msg:'自动登录成功'});
} else {
api.alert({ msg:JSON.stringify(err)});
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
addAccountListener
账号异常事件的监听
addAccountListener(callback(ret))
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
eventType: 'otherLogin' //字符串类型;监听的事件类型,取值范围如下:
//otherLogin:当前登录账号在其它设备登录事件
//remove:当前登录账号已经被从服务器端删除事件
//forbid:服务被禁用事件(仅支持ios)
}
示例代码
var easeChat = api.require('easeChat');
easeChat.addAccountListener(function(ret) {
api.alert({ msg:ret.eventType});
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
sendHMSPushTokenToServer
注册华为推送,上传token
sendHMSPushTokenToServer({params})
params
token:
- 类型:字符串
- 描述:华为token
appid:
- 类型:字符串
- 描述:华为appid
示例代码
var easeChat = api.require('easeChat');
easeChat.sendHMSPushTokenToServer({
token: '',
appid: ''
});
可用性
Android系统
可提供的 1.0.9 及更高版本
createGroup
创建群组
createGroup({params},callback(ret, err))
params
name:
- 类型:字符串
- 描述:群组名
description:
- 类型:字符串
- 描述:群组描述
message:
- 类型:字符串
- 描述:邀请消息
userCount:
- 类型:数字
- 描述:(可选项)群组容纳的人数,群组的最大成员数(3 - 2000)
- 默认:200
invitees:
- 类型:数组
- 描述:群组成员(不包括创建者自己)
- 示例:
['6001','6002','6003','6004']
style:
- 类型:字符串
- 描述:群组类型
- 默认:openJoin
- 取值范围:
- openJoin:公开群组,用户可以自由加入
- ownerInvite:私有群组,只允许Owner邀请用户加入
- memberCanInvite:私有群组,Owner和群成员均可邀请用户加入
- public:公开群组,Owner可以邀请用户加入; 非群成员用户发送入群申请,经Owner同意后才能入组
IsInviteNeedConfirm:
- 类型:布尔
- 描述:(可选项)邀请群成员时,是否需要发送邀请通知.若false,被邀请的人自动加入群组
- 默认:false
callback(ret, err)
ret:
- 类型:JSON 对象
- 描述:创建群返回结果
- 内部字段:
{
status: true , //布尔类型;是否创建成功,true|false
group: { //JSON对象;创建的群组信息
groupId: '', //字符串类型;群组id
subject: '', //字符串类型;群组的主题
description: '', //字符串类型;群组的描述
memberCount: , //数字类型;群组当前的成员数量
setting: {
style: '', //字符串类型;群组的类型
maxUserCount: //数字类型;群组的最大成员数(3 - 2000,默认是200)
},
owner: '', //字符串类型;群组的所有者,拥有群的最高权限(只有一人)
members: [], //数组类型;群组的成员列表
blackList: [], //数组类型;群组的黑名单,需要owner权限才能查看,非owner返回undefine
isPublic: , //布尔类型;此群是否为公开群
isBlocked: , //布尔类型;是否屏蔽群消息
isPushNotificationEnabled://布尔类型;此群组是否接收消息推送通知,(仅支持ios)
}
}
err:
- 类型:JSON 对象
- 描述:创建群失败后返回结果
- 内部字段:
{
code: 1, //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var easeChat = api.require('easeChat');
easeChat.createGroup({
name:'APICloud',
description: 'APICloud大牛群',
message:'欢迎加入!',
userCount:200,
invitees:['6001','6002','6003','6004'],
style: 'public'
},function(ret, err) {
if (ret.status) {
api.alert({ msg:'创建成功'});
} else {
api.alert({ msg:JSON.stringify(err)});
}
});
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
destroyGroup
解散群组 ,需要owner/admin权限
destroyGroup({params},callback(ret))
params
id:
- 类型:字符串
- 描述:群组 id
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true , //布尔类型;是否解散成功,true|false
}
err:
- 类型:JSON 对象
- 描述:创建群失败后返回结果
- 内部字段:
{
code: 1, //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var easeChat = api.require('easeChat');
easeChat.destroyGroup({
id:'123',
},function(ret, err) {
if (ret.status) {
api.alert({ msg:'解散'});
} else {
api.alert({ msg:JSON.stringify(err)});
}
});
可用性
iOS系统,Android系统
可提供的 1.0.4 及更高版本
getGroupInfo
获取制定 id 的群组信息
getGroupInfo({params},callback(ret))
params
id:
- 类型:字符串
- 描述:群组 id
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
group: { //JSON对象;获取的群组信息
groupId: '', //字符串类型;群组id
subject: '', //字符串类型;群组的主题
description: '', //字符串类型;群组的描述
memberCount: , //数字类型;群组当前的成员数量
setting: { //仅支持ios
style: '', //字符串类型;群组的类型
maxUserCount: //数字类型;群组的最大成员数(3 - 2000,默认是200)
},
owner: '', //字符串类型;群组的所有者,拥有群的最高权限(只有一人)
members: [], //数组类型;群组的成员列表
blackList: [], //数组类型;群组的黑名单,需要owner权限才能查看,非owner返回undefine
isPublic: , //布尔类型;此群是否为公开群
isBlocked: , //布尔类型;是否屏蔽群消息
isPushNotificationEnabled://布尔类型;此群组是否接收消息推送通知,(仅支持ios)
}
}
示例代码
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
addContact
添加好友
addContact({params},callback(ret, err))
params
name:
- 类型:字符串
- 描述:要添加的用户
message:
- 类型:字符串
- 描述:邀请消息
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true , //布尔类型;是否添加成功,true|false
name: '' //字符串类型;用户名
}
err:
- 类型:JSON 对象
- 描述:添加失败后返回结果
- 内部字段:
{
code: 1, //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var easeChat = api.require('easeChat');
easeChat.addContact({
name:'APICloud',
message:'欢迎加入!'
},function(ret, err) {
if (ret.status) {
api.alert({ msg:'添加成功'});
} else {
api.alert({ msg:JSON.stringify(err)});
}
});
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
addContactListener
添加好友状态监听
addContactListener(callback(ret))
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
state: '', //字符串类型;群组状态,取值范围如下:
//friendRequestDidApproveByUser:用户B同意用户A的加好友请求后,用户A会收到这个回调
//friendRequestDidDeclineByUser:用户B拒绝用户A的加好友请求后,用户A会收到这个回调
//friendshipDidRemoveByUser:用户B删除与用户A的好友关系后,用户A,B会收到这个回调
//friendshipDidAddByUser:用户B同意用户A的好友申请后,用户A和用户B都会收到这个回调
//friendRequestDidReceiveFromUser:用户B申请加A为好友后,用户A会收到这个回调
username:'', //state为friendshipDidRemoveByUser时此字段为用户好友关系的另一方,state为其他字段时此字段为用户B
message:'' //好友邀请信息,仅state为friendRequestDidReceiveFromUser时有效
}
示例代码
var easeChat = api.require('easeChat');
easeChat.addContactListener(function(ret) {
api.alert(ret);
});
可用性
iOS系统,Android系统
可提供的1.0.5及更高版本
setAutoAcceptFriendInvitation
设置是否自动同意好友申请
setAutoAcceptFriendInvitation({params})
params
isAutoAcceptFriendInvitation:
- 类型:布尔
- 描述:是否自动同意好友申请
示例代码
var easeChat = api.require('easeChat');
easeChat.setAutoAcceptFriendInvitation({
isAutoAcceptFriendInvitation:true
});
可用性
iOS系统,Android系统
可提供的1.0.5及更高版本
approveFriendRequest
同意加好友的申请
approveFriendRequest({params},callback(ret, err))
params
name:
- 类型:字符串
- 描述:申请者
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true , //布尔类型;是否同意成功,true|false
name: '' //字符串类型;用户名
}
err:
- 类型:JSON 对象
- 描述:同意失败后返回结果
- 内部字段:
{
code: 1, //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var easeChat = api.require('easeChat');
easeChat.approveFriendRequest({
name:'APICloud'
},function(ret, err) {
if (ret.status) {
api.alert({ msg:'同意成功'});
} else {
api.alert({ msg:JSON.stringify(err)});
}
});
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
declineFriendRequest
拒绝加好友的申请
declineFriendRequest({params},callback(ret, err))
params
name:
- 类型:字符串
- 描述:申请者
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true , //布尔类型;是否拒绝成功,true|false
name: '' //字符串类型;用户名
}
err:
- 类型:JSON 对象
- 描述:拒绝失败后返回结果
- 内部字段:
{
code: 1, //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var easeChat = api.require('easeChat');
easeChat.declineFriendRequest({
name:'APICloud'
},function(ret, err) {
if (ret.status) {
api.alert({ msg:'同意成功'});
} else {
api.alert({ msg:JSON.stringify(err)});
}
});
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
deleteContact
删除好友
deleteContact({params},callback(ret, err))
params
name:
- 类型:字符串
- 描述:要删除的好友
isDeleteConversation:
- 类型:布尔
- 描述:(可选项)是否删除会话(仅ios有效)
- 默认:true
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true , //布尔类型;是否删除成功,true|false
name: '' //字符串类型;用户名
}
err:
- 类型:JSON 对象
- 描述:删除失败后返回结果
- 内部字段:
{
code: 1, //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var easeChat = api.require('easeChat');
easeChat.deleteContact({
name:'APICloud',
isDeleteConversation: true
},function(ret, err) {
if (ret.status) {
api.alert({ msg:'删除成功'});
} else {
api.alert({ msg:JSON.stringify(err)});
}
});
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
getContacts
获取好友列表
getContacts({params},callback(ret))
params
original:
- 类型:字符串
- 描述:(可选项)数据源(仅ios有效)
- 默认:server
- 取值范围:
- server:从服务器获取所有的好友
- local:获取本地存储的所有好友
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true , //布尔类型;是否获取成功,true|false
list: [] //数组类型;获取的好友列表
}
示例代码
var easeChat = api.require('easeChat');
easeChat.getContacts({
original: 'server'
},function(ret) {
api.alert({ msg:JSON.stringify(ret)});
});
可用性
iOS系统、android系统
可提供的 1.0.0 及更高版本
getConversation
新建/获取一个会话,android平台不支持创建
getConversation({params},callback(ret))
params
conversationId:
- 类型:字符串
描述:(可选项)会话的id,若创建时可不传此参数:
类型:字符串
- 描述:(可选项)会话类型
- 默认:chat
- 取值范围:
- chat:单聊会话
- groupChat:群聊会话
- chatRoom:聊天室会话
ifCreate:
- 类型:布尔
- 描述:(可选项) 如果会话不存在是否创建会话
- 默认:true
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true , //布尔类型;是否创建/获取成功,true|false
conversation: {} //JSON 对象;返回会话信息,详细内容参考附件:会话信息
}
示例代码
var easeChat = api.require('easeChat');
easeChat.getConversation({
conversationId: '',
type: 'chat',
ifCreate: true
},function(ret) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
});
可用性
iOS系统、android系统
可提供的 1.0.0 及更高版本
loadMessageFromDB
从数据库中获取消息,获取到的消息是startMsgId之前的pagesize条消息;
loadMessageFromDB({params},callback(ret))
params
conversationId:
- 类型:字符串
- 描述:(必选项)要获取其消息的会话的 id
type:
- 类型:字符串
- 描述:(可选项)会话类型
- 默认:chat
- 取值范围:
- chat:单聊会话
- groupChat:群聊会话
- chatRoom:聊天室会话
startMsgId:
- 类型:字符串
- 描述:(可选项)消息id,如果不写此项,从数据库中读取最新的记录
pagesize:
- 类型:数字
- 描述:(可选项) 获取startMsgId之前的消息数
- 默认值:10
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
messages: [] //数组对象;返回会话信息,详细内容参考附件:消息内容
}
示例代码
var easeChat = api.require('easeChat');
easeChat.loadMessageFromDB({
conversationId: '',
type: 'chat',
startMsgId:''
},function(ret) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
});
可用性
iOS系统,android系统
可提供的 1.0.1 及更高版本
deleteConversation
删除会话
deleteConversation({params},callback(ret,err))
params
conversationId:
- 类型:字符串
- 描述:要删除的会话的id
isDeleteMessages:
- 类型:布尔
- 描述:(可选项) 是否删除会话中的消息
- 默认:true
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true , //布尔类型;是否删除成功,true|false
conversation: {} //JSON 对象;返回删除的会话信息,详细内容参考附件:会话信息
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var easeChat = api.require('easeChat');
easeChat.deleteConversation({
conversationId: '',
isDeleteMessages: true
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
deleteConversations
删除一组会话
deleteConversations({params},callback(ret,err))
params
conversationIds:
- 类型:数组
- 描述:要删除的会话的id 组成的数组
isDeleteMessages:
- 类型:布尔
- 描述:(可选项) 是否删除会话中的消息
- 默认:true
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true //布尔类型;是否删除成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var easeChat = api.require('easeChat');
easeChat.deleteConversations({
conversationIds: [],
isDeleteMessages: true
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
getAllConversations
获取所有会话,如果内存中不存在会从DB中加载
getAllConversations(callback(ret,err))
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
conversations: [] //数组类型;返回的会话信息组成的数组,会话信息详细内容参考附件:会话信息
}
示例代码
var easeChat = api.require('easeChat');
easeChat.getAllConversations(function(ret) {
api.alert({ msg:JSON.stringify(ret)});
});
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
loadMessageWithId
根据会话id 及其类型,获取指定消息 ID 的消息
loadMessageWithId({params},callback(ret,err))
params
conversationId:
- 类型:字符串
- 描述:要获取信息的会话的 id
type:
- 类型:字符串
- 描述:(可选项)会话类型
- 默认:chat
- 取值范围:
- chat:单聊会话
- groupChat:群聊会话
- chatRoom:聊天室会话
messageId:
- 类型:字符串
- 描述:指定的消息的 ID
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;是否获取成功,true|false
message: {} //JSON 对象;获取的消息,详情参考附录:消息内容
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var easeChat = api.require('easeChat');
easeChat.loadMessageWithId({
conversationId: '',
type: 'chat',
messageId: ''
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
lastReceivedMessage
根据会话id 及其类型,获取收到的对方发送的最后一条消息(仅支持ios)
lastReceivedMessage({params},callback(ret,err))
params
conversationId:
- 类型:字符串
- 描述:要获取信息的会话的 id
type:
- 类型:字符串
- 描述:(可选项)会话类型
- 默认:chat
- 取值范围:
- chat:单聊会话
- groupChat:群聊会话
- chatRoom:聊天室会话
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;是否获取成功,true|false
message: {} //JSON 对象;获取的消息,详情参考附录:消息内容
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var easeChat = api.require('easeChat');
easeChat.lastReceivedMessage({
conversationId: '',
type: 'chat',
messageId: ''
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
markMessageAsRead
将会话指定消息置为已读
markMessageAsRead({params},callback(ret,err))
params
conversationId:
- 类型:字符串
- 描述:要设置的会话的 id
type:
- 类型:字符串
- 描述:(可选项)会话类型
- 默认:chat
- 取值范围:
- chat:单聊会话
- groupChat:群聊会话
- chatRoom:聊天室会话
messageId:
- 类型:字符串
- 描述:要设置为已读的信息的 id
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;是否设置成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: //数字类型;错误码
}
示例代码
var easeChat = api.require('easeChat');
easeChat.markMessageAsRead({
conversationId: '',
type: 'chat',
messageId: ''
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统,Android系统
可提供的 1.0.2 及更高版本
markAllMessagesAsRead
将会话所有消息置为已读
markAllMessagesAsRead({params},callback(ret,err))
params
conversationId:
- 类型:字符串
- 描述:要设置的会话的 id
type:
- 类型:字符串
- 描述:(可选项)会话类型
- 默认:chat
- 取值范围:
- chat:单聊会话
- groupChat:群聊会话
- chatRoom:聊天室会话
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;是否设置成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: //数字类型;错误码
}
示例代码
var easeChat = api.require('easeChat');
easeChat.markAllMessagesAsRead({
conversationId: '',
type: 'chat'
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统,Android系统
可提供的 1.0.2 及更高版本
setConversationExt
设置会话的扩展字段,该字段只保存在本地,不进行网络同步
setConversationExt({params})
params
conversationId:
- 类型:字符串
- 描述:(必选项)会话的id
type:
- 类型:字符串
- 描述:(可选项)会话类型
- 默认:chat
- 取值范围:
- chat:单聊会话
- groupChat:群聊会话
- chatRoom:聊天室会话
ext:
- 类型:JSON对象
- 描述:会话的扩展字段,以json格式设定,key为扩展名,value为扩展值
- 内部字段:
{
key:value,
key:value
}
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true , //布尔类型;是否设置置顶成功,true|false
}
示例代码
var easeChat = api.require('easeChat');
easeChat.setConversationExt({
isTop: true
},function(ret) {
});
可用性
iOS,android系统
可提供的 1.0.2 及更高版本
recallMessage
撤回一条消息(此接口必须开通增值服务)
recallMessage({params},callback(ret,err))
params
conversationId:
- 类型:字符串
- 描述:要设置的会话的 id
type:
- 类型:字符串
- 描述:(可选项)会话类型
- 默认:chat
- 取值范围:
- chat:单聊会话
- groupChat:群聊会话
- chatRoom:聊天室会话
messageId:
- 类型:字符串
- 描述:要撤回消息的 id
callback(ret,err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true , //布尔类型;是否撤回成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var easeChat = api.require('easeChat');
easeChat.recallMessage({
conversationId:'',
messageId:''
},function(ret,err) {
if(ret.status)
api.alert('撤回消息成功');
});
可用性
iOS,android系统
可提供的 1.0.6 及更高版本
joinChatroom
加入聊天室
joinChatroom({params},callback(ret,err))
params
conversationId:
- 类型:字符串
- 描述:聊天室id
callback(ret,err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true , //布尔类型;是否成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var easeChat = api.require('easeChat');
easeChat.joinChatroom({
conversationId:''
},function(ret,err) {
api.alert({ msg:JSON.stringify(ret)});
});
可用性
iOS, android系统
可提供的 2.0.3 及更高版本
leaveChatroom
离开聊天室
leaveChatroom({params},callback(ret,err))
params
conversationId:
- 类型:字符串
- 描述:聊天室id
callback(ret,err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true , //布尔类型;是否成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var easeChat = api.require('easeChat');
easeChat.leaveChatroom({
conversationId:''
},function(ret,err) {
api.alert({ msg:JSON.stringify(ret)});
});
可用性
iOS, android系统
可提供的 2.0.3 及更高版本
destroyChatroom
解散聊天室(需要owner权限)
destroyChatroom({params},callback(ret,err))
params
conversationId:
- 类型:字符串
- 描述:聊天室id
callback(ret,err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true , //布尔类型;是否成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var easeChat = api.require('easeChat');
easeChat.destroyChatroom({
conversationId:''
},function(ret,err) {
api.alert({ msg:JSON.stringify(ret)});
});
可用性
ios, android系统
可提供的 1.4.8 及更高版本
fetchHistoryMessagesFromServer
从服务器获取指定会话的历史消息;此接口需要开通环信增值服务,未开通不会返回数据
fetchHistoryMessagesFromServer({params},callback(ret))
params
conversationId:
- 类型:字符串
- 描述:(必选项)会话的id,若创建时可不传此参数
type:
- 类型:字符串
- 描述:(可选项)会话类型
- 默认:chat
- 取值范围:
- chat:单聊会话
- groupChat:群聊会话
- chatRoom:聊天室会话
startMsgId:
- 类型:字符串
- 描述:参考起始消息的ID
pagesize:
- 类型:数字
- 描述:(可选项) 获取startMsgId之前的消息数
- 默认值:10
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
messages: [], //数组对象;返回会话信息,详细内容参考附件:消息内容
cursor:10 //字符类型;获取下一段结果的游标
}
示例代码
var easeChat = api.require('easeChat');
easeChat.fetchHistoryMessagesFromServer({
conversationId: '',
type: 'chat',
startMsgId:''
},function(ret) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
});
可用性
iOS系统,Android系统
可提供的 1.0.4 及更高版本
addMembersToGroup
邀请单人或多人进入群组, (注:android如果是群主加人可以调用此接口)
addMembersToGroup({params},callback(ret))
params
names:
- 类型:数组类型
- 描述:要邀请的用户名列表
groupId:
- 类型:字符串
- 描述:群组id
message:
- 类型:字符串
- 描述:(可选项)欢迎信息(仅支持ios)
callback(ret,err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true , //布尔类型;是否获取成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var easeChat = api.require('easeChat');
easeChat.addMembersToGroup({
groupId:'123'
names:['user1','user2'],
message:'欢迎'
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统,Android系统
可提供的 1.0.2 及更高版本
inviteUser
私有群里,如果开放了群成员邀请,群成员邀请调用该接口邀请成员
inviteUser({params},callback(ret))
params
names:
- 类型:数组类型
- 描述:要邀请的用户名列表
groupId:
- 类型:字符串
- 描述:群组id
message:
- 类型:字符串
- 描述:(可选项)欢迎信息
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true , //布尔类型;是否获取成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var easeChat = api.require('easeChat');
easeChat.inviteUser({
groupId:'123'
names:['user1','user2'],
message:'欢迎'
},function(ret) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
Android系统
可提供的 1.0.2 及更高版本
removeMembersFromGroup
把单人或多人移出群组
removeMembersFromGroup({params},callback(ret))
params
names:
- 类型:数组类型
- 描述:要移除的用户名列表(注:android不支持一次删除多个人,即如果数组的长度大于1,只会删除第一个)
groupId:
- 类型:字符串
- 描述:群组id
callback(ret,err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true , //布尔类型;是否获取成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var easeChat = api.require('easeChat');
easeChat.removeMembersFromGroup({
groupId:'123'
names:['user1','user2']
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统,Android系统
可提供的 1.0.2 及更高版本
changeGroupSubject
修改群组群名称
changeGroupSubject({params},callback(ret))
params
groupName:
- 类型:字符串
- 描述:要修改的名称
groupId:
- 类型:字符串
- 描述:群组id
callback(ret,err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true , //布尔类型;是否获取成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var easeChat = api.require('easeChat');
easeChat.changeGroupSubject({
groupId:'123'
groupName:'apple'
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统,Android系统
可提供的 1.0.2 及更高版本
leaveGroup
用户主动退出群组
leaveGroup({params},callback(ret))
params
groupId:
- 类型:字符串
- 描述:群组id
callback(ret,err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true , //布尔类型;是否获取成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var easeChat = api.require('easeChat');
easeChat.leaveGroup({
groupId:'123'
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统,Android系统
可提供的 1.0.2 及更高版本
joinPublicGroup
加入一个公开群组
joinPublicGroup({params},callback(ret))
params
groupId:
- 类型:字符串
- 描述:群组id
callback(ret,err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true , //布尔类型;是否获取成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var easeChat = api.require('easeChat');
easeChat.joinPublicGroup({
groupId:'123'
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统,Android系统
可提供的 1.0.2 及更高版本
requestToJoinPublicGroup
申请加入一个需批准的公开群组
requestToJoinPublicGroup({params},callback(ret))
params
groupId:
- 类型:字符串
- 描述:群组id
aMessage:
- 类型:字符串
- 描述:(可选项)请求加入的信息
callback(ret,err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true , //布尔类型;是否获取成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var easeChat = api.require('easeChat');
easeChat.requestToJoinPublicGroup({
groupId:'123',
aMessage:'sss'
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统,Android系统
可提供的 1.0.2 及更高版本
approveJoinGroupRequest
批准入群申请
approveJoinGroupRequest({params},callback(ret))
params
groupId:
- 类型:字符串
- 描述:所申请的群组ID
username:
- 类型:字符串
- 描述:申请人
callback(ret,err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true , //布尔类型;是否获取成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var easeChat = api.require('easeChat');
easeChat.approveJoinGroupRequest({
groupId:'123',
username:'user1'
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统,Android系统
可提供的 1.0.2 及更高版本
declineJoinGroupRequest
拒绝入群申请
declineJoinGroupRequest({params},callback(ret))
params
groupId:
- 类型:字符串
- 描述:被拒绝的群组ID
username:
- 类型:字符串
- 描述:申请人
reason:
- 类型:字符串
- 描述:拒绝理由
callback(ret,err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true , //布尔类型;是否获取成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var easeChat = api.require('easeChat');
easeChat.declineJoinGroupRequest({
groupId:'123',
username:'user1',
reason:'不认识'
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统,Android系统
可提供的 1.0.2 及更高版本
acceptInvitationFromGroup
接受入群邀请
acceptInvitationFromGroup({params},callback(ret))
params
groupId:
- 类型:字符串
- 描述:接受的群组ID
username:
- 类型:字符串
- 描述:邀请者
callback(ret,err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true , //布尔类型;是否获取成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var easeChat = api.require('easeChat');
easeChat.acceptInvitationFromGroup({
groupId:'123',
username:'user1',
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统,Android系统
可提供的 1.0.2 及更高版本
declineGroupInvitation
拒绝入群邀请
declineGroupInvitation({params},callback(ret))
params
groupId:
- 类型:字符串
- 描述:被拒绝的群组ID
username:
- 类型:字符串
- 描述:邀请人
reason:
- 类型:字符串
- 描述:拒绝理由
callback(ret,err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true , //布尔类型;是否获取成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var easeChat = api.require('easeChat');
easeChat.declineGroupInvitation({
groupId:'123',
username:'user1',
reason:'123'
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统,Android系统
可提供的 1.0.2 及更高版本
addGroupListener
群组状态监听
addGroupListener(callback(ret))
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
state: 'userJoin', //字符串类型;群组状态,取值范围如下:
//muteMember:有成员被加入禁言列表;此状态下只有muteMembers、groupId字段有效
//unmuteMember:有成员被移出禁言列表;此状态下只有unmuteMembers、groupId字段有效
//userJoin:群组加入新成员
//userLeave:群成员退出
//joinGroupReceive:群组的群主收到用户的入群申请
//joinGroupDecline:群主拒绝用户A的入群申请后,用户A会接收到该回调
//joinGroupApprove:群主同意用户A的入群申请后,用户A会接收到该回调
//groupInvitationDidReceive:用户A邀请用户B入群,用户B接收到该回调
//groupInvitationDidAccept:用户B同意用户A的入群邀请后,用户A接收到该回调 //groupInvitationDidDecline:用户B拒绝用户A的入群邀请后,用户A接收到该回调 //didJoinGroup:SDK自动同意了用户A的加B入群邀请后,用户B接收到该回调,需要设置setAutoAcceptGroupInvitation的setAutoAcceptGroupInvitation属性为YES
user:'user1', //群成员名称(iOS state为joinGroupDecline和joinGroupApprove时没有此字段,state为groupInvitationDidReceive和didJoinGroup user为邀请者 state为groupInvitationDidAccept和groupInvitationDidDecline user为被邀请者)
groupId:'111', //群组id
receiveReason:'', //申请者的附属信息(当state为userJoin,userLeave,joinGroupDecline,joinGroupApprove,groupInvitationDidAccept没有此字段state为groupInvitationDidReceive receiveReason为邀请信息,state为groupInvitationDidDecline receiveReason为拒绝理由,state为didJoinGroup receiveReason为邀请消息)
muteMembers:[], // 被禁言的成员;此字段只有在state为muteMember有效
unmuteMembers:[], // 被解除禁言的成员;此字段只有在state为unmuteMembers有效
}
示例代码
var easeChat = api.require('easeChat');
easeChat.addGroupListener(function(ret) {
api.alert(ret);
});
可用性
iOS系统,Android系统
可提供的1.0.2及更高版本
setAutoAcceptGroupInvitation
设置用户是否自动同意群邀请
setAutoAcceptGroupInvitation({params},callback(ret))
params
isAutoAcceptGroupInvitation:
- 类型:布尔
- 描述:用户是否自动同意群邀请
- 默认:true
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true , //布尔类型;是否设置成功,true|false
}
示例代码
var easeChat = api.require('easeChat');
easeChat.setAutoAcceptGroupInvitation({
isAutoAcceptGroupInvitation:true
},function(ret) {
api.alert(ret);
});
可用性
iOS系统,Android系统
可提供的1.0.2及更高版本
getGroupsListFromServer
按数目从服务器获取自己加入的群组
getGroupsListFromServer({params},callback(ret,err))
params
pageNum:
- 类型:数字类型
- 描述:(可选项)获取自己加入群的cursor
- 默认:1
pageSize:
- 类型:数字类型
- 描述:(可选项)期望返回结果的数量, 如果 < 0 则一次返回所有结果
- 默认:-1
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true , //布尔类型;是否获取成功,true|false
groups:[{ //JSON对象;获取的群组信息
groupId: '', //字符串类型;群组id
subject: '', //字符串类型;群组的主题
description: '', //字符串类型;群组的描述
memberCount: , //数字类型;群组当前的成员数量
setting: { //仅支持ios
style: '', //字符串类型;群组的类型
maxUserCount: //数字类型;群组的最大成员数(3 - 2000,默认是200)
},
owner: '', //字符串类型;群组的所有者,拥有群的最高权限(只有一人)
isPublic: , //布尔类型;此群是否为公开群
isBlocked: , //布尔类型;是否屏蔽群消息
isPushNotificationEnabled://布尔类型;此群组是否接收消息推送通知,(仅支持ios)
}]
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: //数字类型;错误码
}
示例代码
var easeChat = api.require('easeChat');
easeChat.getGroupsListFromServer({
pageNum:1,
pageSize:10
},function(ret) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统,Android系统
可提供的 1.0.4 及更高版本
getAllPublicGroups
获取公开群组
getAllPublicGroups({params},callback(ret,err))
params
pageNum:
- 类型:数字类型
- 描述:(可选项)获取自己加入群的cursor
- 默认:0
pageSize:
- 类型:数字类型
- 描述:(可选项)期望返回结果的数量, 如果 < 0 则一次返回所有结果
- 默认:-1
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true , //布尔类型;是否获取成功,true|false
cursor:'', //字符串类型;获取下一段结果的游标
groups:[{ //JSON对象;获取的群组信息
groupId: '', //字符串类型;群组id
subject: '', //字符串类型;群组的主题
description: '', //字符串类型;群组的描述(android不支持)
memberCount: , //数字类型;群组当前的成员数量(android不支持)
setting: { //(android不支持)
style: '', //字符串类型;群组的类型
maxUserCount: //数字类型;群组的最大成员数(3 - 2000,默认是200)
},
owner: '', //字符串类型;群组的所有者,拥有群的最高权限(只有一人)(android不支持)
isPublic: , //布尔类型;此群是否为公开群(android不支持)
isBlocked: , //布尔类型;是否屏蔽群消息(android不支持)
isPushNotificationEnabled://布尔类型;此群组是否接收消息推送通知,(android不支持)
}]
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: //数字类型;错误码
}
示例代码
var easeChat = api.require('easeChat');
easeChat.getAllPublicGroups({
pageNum:0,
pageSize:10
},function(ret) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统,Android系统
可提供的 1.0.4 及更高版本
muteMembers
将一组成员禁言,需要Owner / Admin权限
muteMembers({params},callback(ret))
params
muteMembers:
- 类型:数组
- 描述:要禁言的成员列表
muteMilliseconds:
- 类型:数字
- 描述:禁言时长,单位秒(android注意:目前muteMilliseconds参数不起作用,暂时只支持永久禁言和解除禁言两种操作, muteMilliseconds建议输入1230246060)
- 默认:86400(一天)
groupId:
- 类型:字符
- 描述:群组ID
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true , //布尔类型;是否禁言成功,true|false
msg: {} //字符类型;失败信息
}
示例代码
var easeChat = api.require('easeChat');
easeChat.muteMembers({
muteMembers:['',''],
groupId: '123'
},function(ret) {
api.alert({ msg:JSON.stringify(ret)});
});
可用性
iOS系统,Android系统
可提供的 1.0.3 及更高版本
unmuteMembers
解除禁言,需要Owner / Admin权限
unmuteMembers({params},callback(ret))
params
muteMembers:
- 类型:数组
- 描述:要解除禁言的成员列表
groupId:
- 类型:字符
- 描述:群组ID
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true , //布尔类型;是否禁言成功,true|false
msg: {} //字符类型;失败信息
}
示例代码
var easeChat = api.require('easeChat');
easeChat.unmuteMembers({
muteMembers:['',''],
groupId: '123'
},function(ret) {
api.alert({ msg:JSON.stringify(ret)});
});
可用性
iOS系统,Android系统
可提供的 1.0.3 及更高版本
sendText
发送文本消息
sendText({params},callback(ret,err))
params
conversationId:
- 类型:字符串
- 描述:要发送消息的会话的 id
chatType:
- 类型:字符串
- 描述:(可选项)要发送消息的会话类型
- 默认:chat
- 取值范围:
- chat:单聊会话
- groupChat:群聊会话
- chatRoom:聊天室会话
text:
- 类型:字符串
- 描述:发送的消息
from:
- 类型:字符串
- 描述:(可选项)发送方
- 默认:当前登录账号
to:
- 类型:字符串
- 描述:接收方
ext:
- 类型:JSON 对象
- 描述:扩展信息
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;是否发送成功,true|false
message: {} //JSON 对象;发送的消息,详情参考附录:消息内容;注:此接口返回的消息id是临时id,并不是服务器上的id
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var easeChat = api.require('easeChat');
easeChat.sendText({
conversationId: '',
chatType: 'chat',
text: 'APICloud hello',
from: '',
to: 'APICloud',
ext: {}
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
sendImage
发送图片消息
sendImage({params},callback(ret,err))
params
conversationId:
- 类型:字符串
- 描述:要发送消息的会话的 id
chatType:
- 类型:字符串
- 描述:(可选项)要发送消息的会话类型
- 默认:chat
- 取值范围:
- chat:单聊会话
- groupChat:群聊会话
- chatRoom:聊天室会话
path:
- 类型:字符串
- 描述:要发送的图片的路径,要求本地路径(fs://、widget://)
displayName:
- 类型:字符串
- 描述:附件显示名(不包含路径)(仅支持ios)
from:
- 类型:字符串
- 描述:(可选项)发送方
- 默认:当前登录账号
to:
- 类型:字符串
- 描述:接收方
ext:
- 类型:JSON 对象
- 描述:扩展信息
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;是否发送成功,true|false
message: {} //JSON 对象;发送的消息,详情参考附录:消息内容;注:此接口返回的消息id是临时id,并不是服务器上的id
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var easeChat = api.require('easeChat');
easeChat.sendImage({
conversationId: '',
chatType: 'chat',
path: 'widget://res/abc.png',
displayName: 'cloud',
from: '',
to: 'APICloud',
ext: {}
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
sendLocation
发送位置消息
sendLocation({params},callback(ret,err))
params
conversationId:
- 类型:字符串
- 描述:要发送消息的会话的 id
chatType:
- 类型:字符串
- 描述:(可选项)要发送消息的会话类型
- 默认:chat
- 取值范围:
- chat:单聊会话
- groupChat:群聊会话
- chatRoom:聊天室会话
address:
- 类型:字符串
- 描述:要发送的地址
latitude:
- 类型:数字
- 描述:纬度
longitude:
- 类型:数字
- 描述:经度
from:
- 类型:字符串
- 描述:(可选项)发送方
- 默认:当前登录账号
to:
- 类型:字符串
- 描述:接收方
ext:
- 类型:JSON 对象
- 描述:扩展信息
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;是否发送成功,true|false
message: {} //JSON 对象;发送的消息,详情参考附录:消息内容;注:此接口返回的消息id是临时id,并不是服务器上的id
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var easeChat = api.require('easeChat');
easeChat.sendLocation({
conversationId: '',
chatType: 'chat',
address: '北京市天安门',
latitude: ,
longitude: ,
from: '',
to: 'APICloud',
ext: {}
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
sendVoice
发送声音消息
sendVoice({params},callback(ret,err))
params
conversationId:
- 类型:字符串
- 描述:要发送消息的会话的 id
chatType:
- 类型:字符串
- 描述:(可选项)要发送消息的会话类型
- 默认:chat
- 取值范围:
- chat:单聊会话
- groupChat:群聊会话
- chatRoom:聊天室会话
path:
- 类型:字符串
- 描述:要发送的音频的路径,要求本地路径(fs://、widget://)
displayName:
- 类型:字符串
- 描述:附件显示名(不包含路径)
length:
- 类型:数字
- 描述:录音时间(秒)
from:
- 类型:字符串
- 描述:(可选项)发送方
- 默认:当前登录账号
to:
- 类型:字符串
- 描述:接收方
ext:
- 类型:JSON 对象
- 描述:扩展信息
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;是否发送成功,true|false
message: {} //JSON 对象;发送的消息,详情参考附录:消息内容;注:此接口返回的消息id是临时id,并不是服务器上的id
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var easeChat = api.require('easeChat');
easeChat.sendVoice({
conversationId: '',
chatType: 'chat',
path: 'widget://res/abc.mp3',
displayName: 'cloud',
from: '',
to: 'APICloud',
ext: {}
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
sendVideo
发送视频消息
sendVideo({params},callback(ret,err))
params
conversationId:
- 类型:字符串
- 描述:要发送消息的会话的 id
chatType:
- 类型:字符串
- 描述:(可选项)要发送消息的会话类型
- 默认:chat
- 取值范围:
- chat:单聊会话
- groupChat:群聊会话
- chatRoom:聊天室会话
path:
- 类型:字符串
- 描述:要发送的视频的路径,要求本地路径(fs://、widget://)
displayName:
- 类型:字符串
- 描述:附件显示名(不包含路径)
length:
- 类型:数字
- 描述:视频时间长度(秒)
thumbPath:
- 类型:字符串
- 描述:视频预览图路径,要求本地路径(fs://、widget://)
from:
- 类型:字符串
- 描述:(可选项)发送方
- 默认:当前登录账号
to:
- 类型:字符串
- 描述:接收方
ext:
- 类型:JSON 对象
- 描述:扩展信息
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;是否发送成功,true|false
message: {} //JSON 对象;发送的消息,详情参考附录:消息内容;注:此接口返回的消息id是临时id,并不是服务器上的id
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var easeChat = api.require('easeChat');
easeChat.sendVideo({
conversationId: '',
chatType: 'chat',
path: 'widget://res/abc.mp4',
displayName: 'cloud',
from: '',
to: 'APICloud',
ext: {}
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
sendFile
发送文件消息
sendFile({params},callback(ret,err))
params
conversationId:
- 类型:字符串
- 描述:要发送消息的会话的 id
chatType:
- 类型:字符串
- 描述:(可选项)要发送消息的会话类型
- 默认:chat
- 取值范围:
- chat:单聊会话
- groupChat:群聊会话
- chatRoom:聊天室会话
path:
- 类型:字符串
- 描述:要发送的文件的路径,要求本地路径(fs://、widget://)
displayName:
- 类型:字符串
- 描述:附件显示名(不包含路径)
from:
- 类型:字符串
- 描述:(可选项)发送方
- 默认:当前登录账号
to:
- 类型:字符串
- 描述:接收方
ext:
- 类型:JSON 对象
- 描述:扩展信息
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;是否发送成功,true|false
message: {} //JSON 对象;发送的消息,详情参考附录:消息内容;注:此接口返回的消息id是临时id,并不是服务器上的id
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var easeChat = api.require('easeChat');
easeChat.sendFile({
conversationId: '',
chatType: 'chat',
path: 'widget://res/abc.zip',
displayName: 'cloud',
from: '',
to: 'APICloud',
ext: {}
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
sendCmd
发送命令消息
sendCmd({params},callback(ret,err))
params
conversationId:
- 类型:字符串
- 描述:要发送消息的会话的 id
chatType:
- 类型:字符串
- 描述:(可选项)要发送消息的会话类型
- 默认:chat
- 取值范围:
- chat:单聊会话
- groupChat:群聊会话
- chatRoom:聊天室会话
action:
- 类型:字符串
- 描述:要发送的命令
from:
- 类型:字符串
- 描述:(可选项)发送方
- 默认:当前登录账号
to:
- 类型:字符串
- 描述:接收方
ext:
- 类型:JSON 对象
- 描述:扩展信息
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;是否发送成功,true|false
message: {} //JSON 对象;发送的消息,详情参考附录:消息内容;注:此接口返回的消息id是临时id,并不是服务器上的id
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var easeChat = api.require('easeChat');
easeChat.sendCmd({
conversationId: '',
chatType: 'chat',
action: '出发',
from: '',
to: 'APICloud',
ext: {}
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
downloadMessageThumbnail
下载缩略图(图片消息的缩略图或视频消息的第一帧图片),
SDK会自动下载缩略图,所以除非自动下载失败,
用户不需要自己下载缩略图
downloadMessageThumbnail({params},callback(ret,err))
params
conversationId:
- 类型:字符串
- 描述:要发送消息的会话的 id
chatType:
- 类型:字符串
- 描述:(可选项)要发送消息的会话类型
- 默认:chat
- 取值范围:
- chat:单聊会话
- groupChat:群聊会话
- chatRoom:聊天室会话
messageId:
- 类型:字符串
- 描述:要下载的信息的 id
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;是否下载成功,true|false
message: {} //JSON 对象;下载的消息,详情参考附录:消息内容
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var easeChat = api.require('easeChat');
easeChat.downloadMessageThumbnail({
conversationId: '',
chatType: 'chat',
messageId: ''
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
downloadMessageAttachments
下载消息附件(语音,视频,图片原图,文件),
SDK会自动下载语音消息,所以除非自动下载语音失败,
用户不需要自动下载语音附件
downloadMessageAttachments({params},callback(ret,err))
params
conversationId:
- 类型:字符串
- 描述:要发送消息的会话的 id
chatType:
- 类型:字符串
- 描述:(可选项)发送消息的会话类型
- 默认:chat
- 取值范围:
- chat:单聊会话
- groupChat:群聊会话
- chatRoom:聊天室会话
messageId:
- 类型:字符串
- 描述:要下载的信息的 id
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;是否下载成功,true|false
message: {} //JSON 对象;下载的消息,详情参考附录:消息内容
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var easeChat = api.require('easeChat');
easeChat.downloadMessageAttachments({
conversationId: '',
chatType: 'chat',
messageId: ''
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
sendMessageReadAck
发送消息已读回执
sendMessageReadAck({params},callback(ret,err))
params
conversationId:
- 类型:字符串
- 描述:要发送回执消息的会话的 id
chatType:
- 类型:字符串
- 描述:(可选项)发送回执消息的会话类型
- 默认:chat
- 取值范围:
- chat:单聊会话
- groupChat:群聊会话
- chatRoom:聊天室会话
messageId:
- 类型:字符串
- 描述:要发送回执的信息的 id
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;是否发送成功,true|false
message: {} //JSON 对象;发送的回执的消息,详情参考附录:消息内容
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var easeChat = api.require('easeChat');
easeChat.sendMessageReadAck({
conversationId: '',
chatType: 'chat',
messageId: ''
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
addMessageListener
添加消息相关事件监听
addMessageListener({params}, callback(ret, err))
params
name:
- 类型:字符串
- 描述:要监听的消息相关事件名称
- 默认:receive
- 取值范围:
- receive:消息的监听
- cmdReceive:cmd消息的监听
- read:消息已阅读的监听
- deliver:消息已送达的监听
- msgChange:消息状态发生变化的监听
- msgAttachmentChange:消息附件状态发生改变的监听
- conversationListDidUpdate:会话列表发生变化的监听
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
conversations: [], //数组类型;仅当 name 为 conversationListDidUpdate 时本参数有值,发送变化的会话信息组成的数组,会话信息参考附录:会话信息
messages: [] //数组类型;仅当 name 非 conversationListDidUpdate 时本参数有值,消息组成的数组,消息详情参考附录:消息内容
}
err:
- 类型:JSON 对象
- 描述:消息/消息附件状态发送改变时的错误信息,仅当 name 为msgChange 或 msgAttachmentChange 时本参数有值
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var easeChat = api.require('easeChat');
easeChat.addMessageListener({
name: 'receive'
}, function(ret) {
if (ret.messages) {
api.alert({msg:JSON.stringify(ret.messages)});
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
removeMessageListener
移除消息相关事件监听
removeMessageListener({params})
params
name:
- 类型:字符串
- 描述:要移除的消息相关事件名称
- 默认:receive
- 取值范围:
- receive:消息的监听
- cmdReceive:cmd消息的监听
- read:消息已阅读的监听
- deliver:消息已送达的监听
- msgChange:消息状态发生变化的监听
- msgAttachmentChange:消息附件状态发生改变的监听
- conversationListDidUpdate:会话列表发生变化的监听
示例代码
var easeChat = api.require('easeChat');
easeChat.addMessageListener({
name: 'receive'
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
setLocalNotification
开启关闭本地通知
开启本地通知后,app在后台运行时通过长连接收到消息时会弹出提示。此时用户点击提示后,iOS系统会启动app,开发者可在api.addEventListener接口获取消息内容,详情参考概述。
setLocalNotification({params})
params
enable:
- 类型:字符串
- 描述:(可选项)是否开启本地通知
- 默认:true
title:
- 类型:字符串
- 描述:(可选项)本地推送提示语
- 默认:您有一条新的消息
示例代码
var easeChat = api.require('easeChat');
easeChat.setLocalNotification({
enable: true,
title: '您有一条新的消息'
});
可用性
iOS系统
可提供的 1.0.3及更高版本
setCallOptions
1v1音视频通话设置
setCallOptions({params})
params
isSendPushIfOffline:
- 类型:布尔
- 描述:(可选项)被叫方不在线时,是否推送来电通知,如果设置为false,不推送通知,返回EMErrorCallRemoteOffline
- 默认:false
offlineMessageText:
- 类型:字符串
- 描述:(可选项)当isSendPushIfOffline=true时起作用,离线推送显示的内容(仅ios支持)
- 默认:'You have incoming call..'
videoResolution:
- 类型:数字
- 描述:(可选项)视频分辨率
- 默认:0
- 取值范围:
- 0:ios:自适应,android:640 * 480
- 1:352 * 288
- 2:640 * 480
- 3:1280 * 720
maxVideoKbps:
- 类型:数字
- 描述:(可选项)最大视频码率,范围 50 < videoKbps < 5000, 默认0, 0为自适应,建议设置为0
- 默认:0
minVideoKbps:
- 类型:数字
- 描述:(可选项)最小视频码率
- 默认:0
maxVideoFrameRate:
- 类型:数字
- 描述:(可选项)最大视频帧率
maxAudioKbps:
- 类型:数字
- 描述:(可选项)最大音频码率,范围 6 < AudioKbps < 510,默认32,建议设置为32
- 默认:32
示例代码
var easeChat = api.require('easeChat');
easeChat.setCallOptions({
isSendPushIfOffline:true,
offlineMessageText:''
});
可用性
iOS,android系统
可提供的 2.0.0 及更高版本
startCall
发起1v1音视频通话
startCall({params},callback(ret,err))
params
conversationId:
- 类型:字符串
- 描述:被呼叫的用户ID
type:
- 类型:字符串
- 描述:(可选项)通话类型
- 默认:voice
- 取值范围:
- voice:语音
- video:视频
isRecord:
- 类型:布尔
- 描述:(可选项)是否开启服务端录制
- 默认:false
isMerge:
- 类型:布尔
- 描述:(可选项)录制时是否合并数据流
- 默认:false
ext:
- 类型:字符串
- 描述:(可选项)通话扩展信息,会传给被呼叫方
callback(ret, err)
ret:
- 类型:JSON 对象
- 描述:结果
- 内部字段:
{
status: true, //布尔类型;是否成功,true|false
session:{ //json对象;会话信息 (仅ios返回)
callId:'', //字符串类型;会话标识符
localName:'', //字符串类型;通话本地的username
type:0, //数字类型;通话的类型
//取值如下:
//0:实时语音
//1:实时视频
isCaller:'', //布尔类型;是否为主叫方
remoteName:'', //字符串类型;对方的username
status:0, //数字类型;通话的状态
//取值如下:
//0:通话没开始
//2:通话正在连接
//3:通话已经准备好,等待接听
//4:通话双方同意协商
serverVideoId:'', //字符串类型;服务端录制文件的id
willRecord:true, //布尔类型;是否启用服务器录制
ext:'' //字符串类型;消息扩展
}
}
err:
- 类型:JSON 对象
- 描述:结果
- 内部字段:
{
code: 1, //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var easeChat = api.require('easeChat');
easeChat.startCall({
conversationId:'',
type:''
},function(ret, err) {
if (ret.status) {
api.alert({ msg:JSON.stringify(ret)});
} else {
api.alert({ msg:JSON.stringify(err)});
}
});
可用性
iOS,android系统
可提供的 2.0.0 及更高版本
setLocalVideoView
设置1v1视频通话自己视频区域(音频通话掉用此接口无效)(仅ios有效)
setLocalVideoView({params})
params
rect:
- 类型:JSON 对象
- 描述:(可选项)视频的位置及尺寸
- 内部字段:
{
x: 0, //(可选项)数字类型;地图左上角的 x 坐标(相对于所属的 Window 或 Frame);默认:0
y: 0, //(可选项)数字类型;地图左上角的 y 坐标(相对于所属的 Window 或 Frame);默认:0
w: 320, //(可选项)数字类型;地图的宽度;默认:'auto'
h: 480 //(可选项)数字类型;地图的高度;默认:'auto'
}
scaleMode:
- 类型:数字
- 描述:(可选项)设视频显示模式
- 默认值:1
- 取值范围:
- 0:按比例缩放(fit)
- 1:全屏(fill)
bg:
- 类型:字符串
- 描述:(可选项)背景配置,支持rgb、rgba()、#
- 默认值:#000000
fixedOn:
- 类型:字符串类型
- 描述:(可选项)视频视图添加到指定 frame 的名字(只指 frame,传 window 无效)
- 默认:模块依附于当前 window
fixed:
- 类型:布尔
- 描述:(可选项)视频是否随所属 window 或 frame 滚动
- 默认值:true(不随之滚动)
示例代码
var easeChat = api.require('easeChat');
easeChat.setLocalVideoView({
rect: {
x: 0,
y: 0,
w:'auto',
h: 'auto'
},
bg: '#ff0000',
renderModel: 0,
fixedOn: api.frameName,
fixed: true
});
可用性
iOS
可提供的 2.0.0 及更高版本
setRemoteVideoView
设置1v1视频通话对方视频区域(音频通话掉用此接口无效)(仅ios有效)
setRemoteVideoView({params})
params
rect:
- 类型:JSON 对象
- 描述:(可选项)视频的位置及尺寸
- 内部字段:
{
x: 0, //(可选项)数字类型;地图左上角的 x 坐标(相对于所属的 Window 或 Frame);默认:0
y: 0, //(可选项)数字类型;地图左上角的 y 坐标(相对于所属的 Window 或 Frame);默认:0
w: 320, //(可选项)数字类型;地图的宽度;默认:'auto'
h: 480 //(可选项)数字类型;地图的高度;默认:'auto'
}
scaleMode:
- 类型:数字
- 描述:(可选项)设视频显示模式
- 默认值:1
- 取值范围:
- 0:按比例缩放(fit)
- 1:全屏(fill)
bg:
- 类型:字符串
- 描述:(可选项)背景配置,支持rgb、rgba()、#
- 默认值:#000000
fixedOn:
- 类型:字符串类型
- 描述:(可选项)视频视图添加到指定 frame 的名字(只指 frame,传 window 无效)
- 默认:模块依附于当前 window
fixed:
- 类型:布尔
- 描述:(可选项)视频是否随所属 window 或 frame 滚动
- 默认值:true(不随之滚动)
示例代码
var easeChat = api.require('easeChat');
easeChat.setRemoteVideoView({
rect: {
x: 0,
y: 0,
w:'200',
h:'300'
},
bg: '#ff0000',
renderModel: 'fit',
fixedOn: api.frameName,
fixed: true
});
可用性
iOS
可提供的 2.0.0 及更高版本
setVideoView
设置1v1视频通话视频区域(音频通话掉用此接口无效)(仅Android有效)
setVideoView({params})
params
local:
- 类型:JSON 对象
- 描述:本地视频参数
- 内部字段:
{ rect:{ //Json对象类型,视频位置尺寸 x: 0, //(可选项)数字类型;地图左上角的 x 坐标(相对于所属的 Window 或 Frame);默认:0 y: 0, //(可选项)数字类型;地图左上角的 y 坐标(相对于所属的 Window 或 Frame);默认:0 w: 320, //(可选项)数字类型;地图的宽度;默认:'320' h: 480 //(可选项)数字类型;地图的高度;默认:'480' }, fixedOn:'', //字符串类型;(可选项)添加到指定 frame 的名字;默认:依附当前win fixed:, //布尔类型;(可选项 )是否随所属 window 或 frame 滚动 }
remote:
- 类型:JSON 对象
- 描述:远程视频参数
- 内部字段:
{ rect:{ //Json对象类型,视频位置尺寸 x: 0, //(可选项)数字类型;地图左上角的 x 坐标(相对于所属的 Window 或 Frame);默认:0 y: 0, //(可选项)数字类型;地图左上角的 y 坐标(相对于所属的 Window 或 Frame);默认:0 w: 320, //(可选项)数字类型;地图的宽度;默认:'320' h: 480 //(可选项)数字类型;地图的高度;默认:'480' }, fixedOn:'', //字符串类型;(可选项)添加到指定 frame 的名字;默认:依附当前win fixed:, //布尔类型;(可选项 )是否随所属 window 或 frame 滚动 }
localTop:
- 类型:布尔类型
- 描述:(可选项)是否本地视频在远程视频上方显示
- 默认:true
示例代码
var easeChat = api.require('easeChat');
easeChat.setVideoView({
local:{
rect: {
x: 0,
y: 0,
w:200,
h:300
},
fixedOn:'videoFrame',
fixed:false
},
remote:{
rect: {
x: 0,
y: 0,
w:400,
h:600
},
fixedOn:'videoFrame',
fixed:false
},
});
可用性
Android
可提供的 2.0.0 及更高版本
removeLocalVideoView
移除1v1视频通话自己视频区域(音频通话掉用此接口无效)
removeLocalVideoView()
示例代码
var easeChat = api.require('easeChat');
easeChat.removeLocalVideoView();
可用性
iOS,android系统
可提供的 2.0.0 及更高版本
removeRemoteVideoView
移除1v1视频通话对方视频区域(音频通话掉用此接口无效)
removeRemoteVideoView()
示例代码
var easeChat = api.require('easeChat');
easeChat.removeRemoteVideoView();
可用性
iOS,android系统
可提供的 2.0.0 及更高版本
answerIncomingCall
接听1v1音视频通话
answerIncomingCall(callback(ret, err))
callback(ret, err)
ret:
- 类型:JSON 对象
- 描述:结果
- 内部字段:
{
status: true //布尔类型;是否成功,true|false
}
err:
- 类型:JSON 对象
- 描述:结果
- 内部字段:
{
code: 1, //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var easeChat = api.require('easeChat');
easeChat.answerIncomingCall(function(ret, err) {
if (ret.status) {
api.alert({ msg:JSON.stringify(ret)});
} else {
api.alert({ msg:JSON.stringify(err)});
}
});
可用性
iOS,android系统
可提供的 2.0.0 及更高版本
endCall
结束1v1音视频通话
endCall({params},callback(ret,err))
params
reason:
- 类型:数字
- 描述:(可选项)结束原因
- 默认:0
- 取值范围:
- 0:挂断
- 2:拒接
- 3:占线(仅ios支持)
- 4:失败(仅ios支持)
- 5:功能不支持(仅ios支持)
- 6:不在线(仅ios支持)
callback(ret, err)
ret:
- 类型:JSON 对象
- 描述:结果
- 内部字段:
{
status: true //布尔类型;是否成功,true|false
}
err:
- 类型:JSON 对象
- 描述:结果
- 内部字段:
{
code: 1, //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var easeChat = api.require('easeChat');
easeChat.endCall({
reason:0
},function(ret, err) {
if (ret.status) {
api.alert({ msg:JSON.stringify(ret)});
} else {
api.alert({ msg:JSON.stringify(err)});
}
});
可用性
iOS,android系统
可提供的 2.0.0 及更高版本
switchCameraPosition
1v1音视频通话切换摄像头,Android不可指定摄像头
switchCameraPosition({params})
params
position:
- 类型:布尔
- 描述:(可选项)是否使用前置摄像头, true使用前置, false使用后置(仅ios有效)
- 默认:false
示例代码
var easeChat = api.require('easeChat');
easeChat.switchCameraPosition({
position: false
});
可用性
iOS,android系统
可提供的 2.0.0 及更高版本
pauseVoice
暂停1v1语音数据传输
pauseVoice()
示例代码
var easeChat = api.require('easeChat');
easeChat.pauseVoice();
可用性
iOS,android系统
可提供的 2.0.0 及更高版本
resumeVoice
恢复1v1语音数据传输
resumeVoice()
示例代码
var easeChat = api.require('easeChat');
easeChat.resumeVoice();
可用性
iOS,android系统
可提供的 2.0.0 及更高版本
pauseVideo
暂停1v1视频图像数据传输
pauseVideo()
示例代码
var easeChat = api.require('easeChat');
easeChat.pauseVideo();
可用性
iOS,android系统
可提供的 2.0.0 及更高版本
resumeVideo
恢复1v1视频图像数据传输
resumeVideo()
示例代码
var easeChat = api.require('easeChat');
easeChat.resumeVideo();
可用性
iOS,android系统
可提供的 2.0.0 及更高版本
setSpeakerEnabled
设置扬声器状态
setSpeakerEnabled({params})
params
speakerEnabled:
- 类型:布尔
- 描述:(可选项)是否开启扬声器
- 默认:false
示例代码
var easeChat = api.require('easeChat');
easeChat.setSpeakerEnabled({
speakerEnabled: false
});
可用性
iOS,android系统
可提供的 2.0.0 及更高版本
addCallListener
添加1v1音视频监听
addCallListener({params},callback(ret))
params
target:
- 类型:字符串
- 描述:(可选项)要监听的事件
- 默认:callDidReceive
- 取值范围:
- callDidReceive:用户A拨打用户B,用户B会收到这个回调
- callDidConnect:通话通道建立完成,用户A和用户B都会收到这个回调
- callConnecting:通话通道正在建立,用户A和用户B都会收到这个回调(仅android支持)
- callDidAccept:用户B同意用户A拨打的通话后,双方都会收到这个回调
- callDidEnde:用户A或用户B结束通话后,对方会收到该回调,通话出现错误,双方都会收到该回调
- callStateDidChange:用户A和用户B正在通话中,用户A中断或者继续数据流传输时,用户B会收到该回调(仅ios支持)
- callNetworkDidChange:用户A和用户B正在通话中,用户A的网络状态出现不稳定,用户A会收到该回调
- callRemoteOffline:用户A给用户B拨打实时通话,用户B不在线,并且用户A掉用setCallOptions接口设置了isSendPushIfOffline == true,则用户A会收到该回调(仅ios支持)
- netWorkNormal:网络恢复正常(仅android支持)
callback(ret)
ret:
- 类型:JSON 对象
- 描述:结果
- 内部字段:
{
session:{ //json对象;会话信息,target为callRemoteOffline不返回此参数,android target为callDidEnde也不返回此参数
callId:'', //字符串类型;会话标识符
localName:'', //字符串类型;通话本地的username
type:0, //数字类型;通话的类型
//取值如下:
//0:实时语音
//1:实时视频
isCaller:'', //布尔类型;是否为主叫方 (仅ios支持)
remoteName:'', //字符串类型;对方的username
status:0, //数字类型;通话的状态 (仅ios支持)
//取值如下:
//0:通话没开始
//2:通话正在连接
//3:通话已经准备好,等待接听
//4:通话双方同意协商
serverVideoId:'', //字符串类型;服务端录制文件的id
willRecord:true, //布尔类型;是否启用服务器录制
ext:'' //字符串类型;消息扩展
},
reason:0, //字符类型;结束原因;target为callDidEnd时返回此参数(仅ios支持)
//取值如下:
//0:对方挂断
//1:对方没有响应
//2:对方拒接
//3:对方占线
//4:失败
//5:功能不支持
//6:对方不在线
error:{ //json对象;错误;target为callDidEnd并且通话出现错误时返回此参数
code: 1, //数字类型;错误码(仅ios支持)
msg: '' //字符串类型;错误信息
},
type:0, //数字类型;改变类型;target为callStateDidChange时返回此参数(仅ios支持)
//取值如下:
//0:中断语音
//1:继续语音
//2:中断视频
//3:继续视频
status:0, //数字类型;改变类型;target为callNetworkDidChange时返回此参数(仅ios支持)
//取值如下:
//0:正常
//1:不稳定
//2:没有数据
remoteName:'', //字符类型;用户B的环信ID;target为callRemoteOffline时返回此参数 (仅ios支持)
}
示例代码
var easeChat = api.require('easeChat');
easeChat.addCallListener({
target: 'callDidReceive'
},function(ret) {
api.alert({ msg:JSON.stringify(ret)});
});
可用性
iOS,android系统
可提供的 2.0.0 及更高版本
removeCallListener
移除1v1音视频监听
removeCallListener({params})
params
target:
- 类型:字符串
- 描述:(可选项)消息推送的免打扰设置
- 默认:callDidReceive
- 取值范围:
- callDidReceive:用户A拨打用户B,用户B会收到这个回调
- callDidConnect:通话通道建立完成,用户A和用户B都会收到这个回调
- callConnecting:通话通道正在建立,用户A和用户B都会收到这个回调(仅android支持)
- callDidAccept:用户B同意用户A拨打的通话后,双方都会收到这个回调
- callDidEnde:用户A或用户B结束通话后,对方会收到该回调,通话出现错误,双方都会收到该回调
- callStateDidChange:用户A和用户B正在通话中,用户A中断或者继续数据流传输时,用户B会收到该回调(仅ios支持)
- callNetworkDidChange:用户A和用户B正在通话中,用户A的网络状态出现不稳定,用户A会收到该回调
- callRemoteOffline:用户A给用户B拨打实时通话,用户B不在线,并且用户A掉用setCallOptions接口设置了isSendPushIfOffline == true,则用户A会收到该回调(仅ios支持)
- netWorkNormal:网络恢复正常(仅android支持)
示例代码
var easeChat = api.require('easeChat');
easeChat.removeCallListener({
target: 'callDidReceive'
});
可用性
iOS,android系统
可提供的 2.0.0 及更高版本
starConferenceCall
创建并加入会议
starConferenceCall({params},callback(ret,err))
params
type:
- 类型:数字
- 描述:(可选项)会议类型
- 默认:10
- 取值范围:
- 10:普通通信会议,成员最多6人
- 11:大型通信会议,成员6-30人
- 12: 直播间(仅andriod支持)
password:
- 类型:字符串
- 描述:(可选项)会议密码
- 默认:'123'
isRecord:
- 类型:布尔
- 描述:(可选项)是否开启服务端录制
- 默认:false
isMerge:
- 类型:布尔
- 描述:(可选项)录制时是否合并数据流
- 默认:false
callback(ret, err)
ret:
- 类型:JSON 对象
- 描述:结果
- 内部字段:
{
status: true, //布尔类型;是否成功,true|false
conference:{ //json对象;会议信息
callId:'', //字符串类型;会话标识符, 本地生成(仅ios支持)
confId:'', //字符串类型;会议标识符,服务器生成
localName:'', //字符串类型;通话本地的username(仅ios支持)
type:0, //数字类型;会议类型
//取值如下:
//10:普通通信会议,成员最多6人
//11:大型通信会议,成员6-30人
role:0, //数字类型;在会议中的角色
//取值如下:
//0:无角色
//1:观众
//3:主播
//7:管理员
adminIds:[], //字符串数组;管理员列表
speakerIds:[], //字符串数组;主播列表
memberCount:0, //数字类型;会议标识符,服务器生成
willRecord:true, //布尔类型;是否启用服务器录制
}
}
err:
- 类型:JSON 对象
- 描述:结果
- 内部字段:
{
code: 1, //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var easeChat = api.require('easeChat');
easeChat.starConferenceCall({
type:10
},function(ret, err) {
if (ret.status) {
api.alert({ msg:JSON.stringify(ret)});
} else {
api.alert({ msg:JSON.stringify(err)});
}
});
可用性
iOS,android系统
可提供的 2.0.0 及更高版本
joinConference
加入已有会议
joinConference({params},callback(ret,err))
params
password:
- 类型:字符串
- 描述:(可选项)会议密码
- 默认:'123'
confId:
- 类型:字符串
- 描述:会议ID
callback(ret, err)
ret:
- 类型:JSON 对象
- 描述:结果
- 内部字段:
{
status: true, //布尔类型;是否成功,true|false
conference:{ //json对象;会议信息
callId:'', //字符串类型;会话标识符, 本地生成(仅ios支持)
confId:'', //字符串类型;会议标识符,服务器生成
localName:'', //字符串类型;通话本地的username(仅ios支持)
type:0, //数字类型;会议类型
//取值如下:
//10:普通通信会议,成员最多6人
//11:大型通信会议,成员6-30人
role:0, //数字类型;在会议中的角色
//取值如下:
//0:无角色
//1:观众
//3:主播
//7:管理员
adminIds:[], //字符串数组;管理员列表
speakerIds:[], //字符串数组;主播列表
memberCount:0, //数字类型;会议标识符,服务器生成
willRecord:true, //布尔类型;是否启用服务器录制
}
}
err:
- 类型:JSON 对象
- 描述:结果
- 内部字段:
{
code: 1, //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var easeChat = api.require('easeChat');
easeChat.joinConference({
confId:''
},function(ret, err) {
if (ret.status) {
api.alert({ msg:JSON.stringify(ret)});
} else {
api.alert({ msg:JSON.stringify(err)});
}
});
可用性
iOS,android系统
可提供的 2.0.0 及更高版本
publishConference
发布音视频流
publishConference({params},callback(ret,err))
params
streamName:
- 类型:字符串
- 描述:数据流名称
enableVideo:
- 类型:布尔类型
- 描述:(可选项)视频是否可用
- 默认:false
isMute:
- 类型:布尔类型
- 描述:(可选项)是否静音
- 默认:false
ext:
- 类型:字符串
- 描述:(可选项)扩展信息
isBackCamera:
- 类型:布尔类型
- 描述:(可选项)是否使用后置摄像头
- 默认:false
maxVideoKbps:
- 类型:布尔类型
- 描述:(可选项)最大视频码率,范围 50 < videoKbps < 5000, 默认0, 0为自适应
- 默认:0
minVideoKbps:
- 类型:布尔类型
- 描述:(可选项)最小视频码率, 默认0
- 默认:0
maxAudioKbps:
- 类型:布尔类型
- 描述:(可选项)最大音频码率,范围 6 < AudioKbps < 510, 默认32
- 默认:32
videoResolution:
- 类型:数字
- 描述:(可选项)视频分辨率
- 默认:0
取值范围:
- 0:自适应
- 1:352 * 288
- 2:640 * 480
- 3:1280 * 720
rect:
类型:JSON 对象
- 描述:(可选项)视频的位置及尺寸
- 内部字段:
{
x: 0, //(可选项)数字类型;地图左上角的 x 坐标(相对于所属的 Window 或 Frame);默认:0
y: 0, //(可选项)数字类型;地图左上角的 y 坐标(相对于所属的 Window 或 Frame);默认:0
w: 320, //(可选项)数字类型;地图的宽度;默认:'auto'
h: 480 //(可选项)数字类型;地图的高度;默认:'auto'
}
scaleMode:
- 类型:数字
- 描述:(可选项)设视频显示模式
- 默认值:1
- 取值范围:
- 0:按比例缩放(fit)
- 1:全屏(fill)
bg:
- 类型:字符串
- 描述:(可选项)背景配置,支持rgb、rgba()、# (仅iOS支持)
- 默认值:#000000
fixedOn:
- 类型:字符串类型
- 描述:(可选项)视频视图添加到指定 frame 的名字(只指 frame,传 window 无效)
- 默认:模块依附于当前 window
fixed:
- 类型:布尔
- 描述:(可选项)视频是否随所属 window 或 frame 滚动
- 默认值:true(不随之滚动)
callback(ret, err)
ret:
- 类型:JSON 对象
- 描述:结果
- 内部字段:
{
status: true, //布尔类型;是否成功,true|false
streamId:'' //字符串类型;数据流ID
}
err:
- 类型:JSON 对象
- 描述:结果
- 内部字段:
{
code: 1, //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var easeChat = api.require('easeChat');
easeChat.publishConference({
streamName:''
},function(ret, err) {
if (ret.status) {
api.alert({ msg:JSON.stringify(ret)});
} else {
api.alert({ msg:JSON.stringify(err)});
}
});
可用性
iOS,android系统
可提供的 2.0.0 及更高版本
subscribeConference
订阅流
subscribeConference({params},callback(ret,err))
params
rect:
- 类型:JSON 对象
- 描述:(可选项)视频的位置及尺寸
- 内部字段:
{
x: 0, //(可选项)数字类型;地图左上角的 x 坐标(相对于所属的 Window 或 Frame);默认:0
y: 0, //(可选项)数字类型;地图左上角的 y 坐标(相对于所属的 Window 或 Frame);默认:0
w: 320, //(可选项)数字类型;地图的宽度;默认:'auto'
h: 480 //(可选项)数字类型;地图的高度;默认:'auto'
}
streamId:
- 类型:字符串
- 描述:数据流ID
scaleMode:
- 类型:数字
- 描述:(可选项)设视频显示模式
- 默认值:1
- 取值范围:
- 0:按比例缩放(fit)
- 1:全屏(fill)
bg:
- 类型:字符串
- 描述:(可选项)背景配置,支持rgb、rgba()、# (仅ios支持)
- 默认值:#000000
fixedOn:
- 类型:字符串类型
- 描述:(可选项)视频视图添加到指定 frame 的名字(只指 frame,传 window 无效)
- 默认:模块依附于当前 window
fixed:
- 类型:布尔
- 描述:(可选项)视频是否随所属 window 或 frame 滚动
- 默认值:true(不随之滚动)
callback(ret, err)
ret:
- 类型:JSON 对象
- 描述:结果
- 内部字段:
{
status: true, //布尔类型;是否成功,true|false
}
err:
- 类型:JSON 对象
- 描述:结果
- 内部字段:
{
code: 1, //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var easeChat = api.require('easeChat');
easeChat.subscribeConference({
streamId:''
},function(ret, err) {
if (ret.status) {
api.alert({ msg:JSON.stringify(ret)});
} else {
api.alert({ msg:JSON.stringify(err)});
}
});
可用性
iOS,android系统
可提供的 2.0.0 及更高版本
leaveConference
离开会议
leaveConference(callback(ret,err))
params
confId:
- 类型:字符串
- 描述:会议ID(仅android支持)
callback(ret, err)
ret:
- 类型:JSON 对象
- 描述:结果
- 内部字段:
{
status: true, //布尔类型;是否成功,true|false
}
err:
- 类型:JSON 对象
- 描述:结果
- 内部字段:
{
code: 1, //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var easeChat = api.require('easeChat');
easeChat.leaveConference(function(ret, err) {
if (ret.status) {
api.alert({ msg:JSON.stringify(ret)});
} else {
api.alert({ msg:JSON.stringify(err)});
}
});
可用性
iOS,android系统
可提供的 2.0.0 及更高版本
destroyConference
销毁会议
destroyConference(callback(ret,err))
params
confId:
- 类型:字符串
- 描述:会议ID(仅android支持)
callback(ret, err)
ret:
- 类型:JSON 对象
- 描述:结果
- 内部字段:
{
status: true, //布尔类型;是否成功,true|false
}
err:
- 类型:JSON 对象
- 描述:结果
- 内部字段:
{
code: 1, //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var easeChat = api.require('easeChat');
easeChat.destroyConference(function(ret, err) {
if (ret.status) {
api.alert({ msg:JSON.stringify(ret)});
} else {
api.alert({ msg:JSON.stringify(err)});
}
});
可用性
iOS,android系统
可提供的 2.0.0 及更高版本
unsubscribeConference
取消订阅流
unsubscribeConference({params},callback(ret))
params
streamId:
- 类型:字符串
- 描述:数据流ID
callback(ret, err)
ret:
- 类型:JSON 对象
- 描述:结果
- 内部字段:
{
status: true, //布尔类型;是否成功,true|false
}
err:
- 类型:JSON 对象
- 描述:结果
- 内部字段:
{
code: 1, //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var easeChat = api.require('easeChat');
easeChat.unsubscribeConference({
streamId:''
},function(ret, err) {
if (ret.status) {
api.alert({ msg:JSON.stringify(ret)});
} else {
api.alert({ msg:JSON.stringify(err)});
}
});
可用性
iOS,android系统
可提供的 2.0.0 及更高版本
unpublishConference
取消发布流
unpublishConference({params},callback(ret))
params
streamId:
- 类型:字符串
- 描述:数据流ID
callback(ret, err)
ret:
- 类型:JSON 对象
- 描述:结果
- 内部字段:
{
status: true, //布尔类型;是否成功,true|false
}
err:
- 类型:JSON 对象
- 描述:结果
- 内部字段:
{
code: 1, //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var easeChat = api.require('easeChat');
easeChat.unpublishConference({
streamId:''
},function(ret, err) {
if (ret.status) {
api.alert({ msg:JSON.stringify(ret)});
} else {
api.alert({ msg:JSON.stringify(err)});
}
});
可用性
iOS,android系统
可提供的 2.0.0 及更高版本
updateConferenceWithSwitchCamera
会议切换摄像头
updateConferenceWithSwitchCamera()
示例代码
var easeChat = api.require('easeChat');
easeChat.updateConferenceWithSwitchCamera();
可用性
iOS,android系统
可提供的 2.0.0 及更高版本
updateConferenceWithVolume
会议设置是否静音
updateConferenceWithVolume({params})
params
isMute:
- 类型:布尔类型
- 描述:是否静音
- 默认:true
示例代码
var easeChat = api.require('easeChat');
easeChat.updateConferenceWithVolume({isMute:true});
可用性
iOS,android系统
可提供的 2.0.0 及更高版本
updateConferenceWithVideo
会议设置视频是否可用
updateConferenceWithVideo({params})
params
enableVideo:
- 类型:布尔类型
- 描述:视频是否可用
- 默认:true
示例代码
var easeChat = api.require('easeChat');
easeChat.updateConferenceWithVideo({enableVideo:true});
可用性
iOS,android系统
可提供的 2.0.0 及更高版本
updateConferenceMaxVideoKbps
会议更新视频最大码率
unpublishConference({params},callback(ret))
params
maxVideoKbps:
- 类型:数字
- 描述:最大码率
callback(ret, err)
ret:
- 类型:JSON 对象
- 描述:结果
- 内部字段:
{
status: true, //布尔类型;是否成功,true|false
}
err:
- 类型:JSON 对象
- 描述:结果
- 内部字段:
{
code: 1, //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var easeChat = api.require('easeChat');
easeChat.updateConferenceMaxVideoKbps({
maxVideoKbps:0
},function(ret, err) {
if (ret.status) {
api.alert({ msg:JSON.stringify(ret)});
} else {
api.alert({ msg:JSON.stringify(err)});
}
});
可用性
iOS,android系统
可提供的 2.0.0 及更高版本
addConferenceListener
添加会议监听
addConferenceListener(callback(ret))
callback(ret)
ret:
- 类型:JSON 对象
- 描述:结果
- 内部字段:
{
eventType: 'memberDidJoin', //字符串类型;监听的事件类型,取值范围如下:
//memberDidJoin:有人加入会议
//memberDidLeave:有人离开会议
//addStream:有新的数据流上传
//removeStream:有数据流移除
//streamDidUpdate:数据流有更新(是否静音,视频是否可用)
//conferenceDidEnd:会议已经结束
//streamStartTransmitting:数据流已经开始传输数据
//networkDidChange:用户A和用户B正在通话中,用户A的网络状态出现不稳定,用户A会收到该回调
//speakerDidChange:用户A用户B在同一个会议中,用户A开始说话时,用户B会收到该回调
//receiveInvite :收到会议邀请(仅android支持)
conference:{ //json对象,会议实例 ,(仅ios有效)
callId:'', //字符类型;会话标识符, 本地生成
confId:'', //字符类型;会议标识符,服务器生成
localName:'', //字符类型;通话本地的username
type:0, //数字类型;会议类型
role:0, //数字类型;在会议中的角色
adminIds:[], //字符串数组;管理员列表
speakerIds:[], //字符串数组;主播列表
memberCount:0, //数字类型;会议标识符,服务器生成
willRecord:true //布尔类型;是否启用服务器录制
},
member:{ //json对象,用户;eventType == memberDidJoin、memberDidLeave返回
memberId:'', //字符类型;成员标识符
memberName:'', //字符类型;成员名
ext:'' //字符类型;扩展信息
},
stream:{ //json对象,用户;eventType == addStream、removeStream、streamDidUpdate返回
streamId:'', //字符类型;数据流标识符
streamName:'', //字符类型;数据流名称
memberName:'', //字符类型;上传者的成员名称
userName:'', //字符类型;上传者环信ID
enableVoice:true, //布尔类型;音频是否可用
enableVideo:true, //布尔类型;视频是否可用
ext:'', //字符类型;扩展信息
type:0 //数字类型;数据流类型
},
reason:0, //数字类型;结束原因;eventType == conferenceDidEnd时返回(仅ios有效)
//取值如下:
//0:对方挂断
//1:对方没有响应
//2:对方拒接
//3:对方占线
//4:失败
//5:功能不支持
//6:对方不在线
error:{ //json对象;错误内容;eventType == conferenceDidEnd时并且出错返回
code: 1, //数字类型;错误码
msg: '' //字符串类型;错误信息
},
streamId:'', //字符类型;数据流ID;eventType == streamStartTransmitting时返回
status:0, //数字类型;通话网络状态;eventType == networkDidChange时返回 (仅ios有效)
//取值如下:
//0:正常
//1:不稳定
//2:没有数据
streamIds:'', //字符类数组型;数据流ID列表;eventType == speakerDidChange时返回
invited:{ //Json对象类型;邀请信息;eventType == receiveInvite时返回
confId:'', //字符串类型;会议id
password:',' //字符串类型;密码
ext:'', //字符串类型;扩展信息
}
}
示例代码
var easeChat = api.require('easeChat');
easeChat.addConferenceListener(function(ret) {
api.alert({ msg:JSON.stringify(ret)});
});
可用性
iOS,android系统
可提供的 2.0.0 及更高版本
removeConferenceListener
移除会议监听
removeConferenceListener()
示例代码
var easeChat = api.require('easeChat');
easeChat.removeConferenceListener();
可用性
iOS,android系统
可提供的 2.0.0 及更高版本
setPushOption
设置推送全局属性
setPushOption({params},callback(ret))
params
displayName:
- 类型:字符串
- 描述:(可选项)推送消息显示的昵称,不传则不设置
displayStyle:
- 类型:字符串
- 描述:(可选项)推送消息显示的类型
- 默认:simpleBanner
- 取值范围:
- simpleBanner:简单显示"您有一条新消息"
- messageSummary:显示消息内容
noDisturbStatus:
- 类型:字符串
- 描述:(可选项)消息推送的免打扰设置
- 默认:close
- 取值范围:
- custom:自定义时间段免打扰
- day:全天免打扰
- close:关闭免打扰
noDisturbingStartH:
- 类型:数字
- 描述:(可选项)消息推送免打扰开始时间,小时,暂时只支持整点(小时),不传则不设置
noDisturbingEndH:
- 类型:数字
- 描述:(可选项)消息推送免打扰结束时间,小时,暂时只支持整点(小时),不传则不设置
callback(ret, err)
ret:
- 类型:JSON 对象
- 描述:结果
- 内部字段:
{
status: true //布尔类型;是否设置成功,true|false
}
err:
- 类型:JSON 对象
- 描述:结果
- 内部字段:
{
code: 1, //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var easeChat = api.require('easeChat');
easeChat.setPushOption({
displayName: '',
displayStyle: '',
noDisturbStatus:'',
noDisturbingStartH:,
noDisturbingEndH:
},function(ret, err) {
if (ret.status) {
api.alert({ msg:'设置'});
} else {
api.alert({ msg:JSON.stringify(err)});
}
});
可用性
iOS系统
可提供的 1.0.3及更高版本
setApnsNickname
设置推送昵称
setApnsNickname({params},callback(ret))
params
nickname:
- 类型:字符串
- 描述:推送消息显示的昵称
callback(ret, err)
ret:
- 类型:JSON 对象
- 描述:结果
- 内部字段:
{
status: true //布尔类型;是否设置成功,true|false
}
err:
- 类型:JSON 对象
- 描述:结果
- 内部字段:
{
code: 1, //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var easeChat = api.require('easeChat');
easeChat.setApnsNickname({
nickName: ''
},function(ret, err) {
if (ret.status) {
api.alert({ msg:'设置'});
} else {
api.alert({ msg:JSON.stringify(err)});
}
});
可用性
iOS系统
可提供的 1.0.3及更高版本
ignoreGroupPush
设置群组忽略推送
ignoreGroupPush({params},callback(ret))
params
groupId:
- 类型:字符串
- 描述:群组id
callback(ret, err)
ret:
- 类型:JSON 对象
- 描述:结果
- 内部字段:
{
status: true //布尔类型;是否设置成功,true|false
}
err:
- 类型:JSON 对象
- 描述:结果
- 内部字段:
{
code: 1, //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var easeChat = api.require('easeChat');
easeChat.ignoreGroupPush({
groupId: ''
},function(ret, err) {
if (ret.status) {
api.alert({ msg:'设置'});
} else {
api.alert({ msg:JSON.stringify(err)});
}
});
可用性
iOS系统
可提供的 1.0.3及更高版本
ignoreGroupsPush
批量设置忽略推送的群组
ignoreGroupsPush({params},callback(ret))
params
groupIds:
- 类型:数组
- 描述:群组id组成的数组
callback(ret, err)
ret:
- 类型:JSON 对象
- 描述:结果
- 内部字段:
{
status: true //布尔类型;是否设置成功,true|false
}
err:
- 类型:JSON 对象
- 描述:结果
- 内部字段:
{
code: 1, //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var easeChat = api.require('easeChat');
easeChat.ignoreGroupsPush({
groupIds: ['','']
},function(ret, err) {
if (ret.status) {
api.alert({ msg:'设置'});
} else {
api.alert({ msg:JSON.stringify(err)});
}
});
可用性
iOS系统
可提供的 1.0.3及更高版本
getAllIgnoredGroupIds
获取忽略推送消息的群组id
getAllIgnoredGroupIds(callback(ret))
callback(ret, err)
ret:
- 类型:JSON 对象
- 描述:结果
- 内部字段:
{
status: true //布尔类型;是否获取成功,true|false
ignoredGroupIds:[] //数组类型;获取的群组id组成的数组
}
err:
- 类型:JSON 对象
- 描述:结果
- 内部字段:
{
code: 1, //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var easeChat = api.require('easeChat');
easeChat.getAllIgnoredGroupIds(function(ret, err) {
if (ret.status) {
api.alert({ msg:'设置'});
} else {
api.alert({ msg:JSON.stringify(err)});
}
});
可用性
iOS系统
可提供的 1.0.3及更高版本
附录
会话信息
- 类型:JSON 对象
- 描述:创建、获取到的会话的相关信息
- 内部字段:
{
conversationId: '', //字符串类型;会话 ID
unreadMessagesCount: , //数字类型;会话未读消息数量
ext: {}, //JSON 对象;会话扩展属性
type: '', //字符串类型;会话类型,取值范围如下:
//chat:单聊会话
//groupChat:群聊会话
//chatRoom:聊天室会话
latestMessage: {} //JSON 对象;会话最新一条消息,详情参考附录:消息内容
}
消息内容
- 类型:JSON 对象
- 描述:获取到的消息包含的内容及其相关信息
- 内部字段:
{
messageId: '', //字符串类型;本条消息的 ID
conversationId: , //字符串类型;本条消息所在会话的会话 ID
direction: '', //字符串类型;消息的方向,取值范围如下:
//send:发送的消息
//receive:接收的消息
from: '', //字符串类型;消息的发送方
to: '', //字符串类型;消息的接收方
timestamp: , //数字类型;时间戳,服务器收到此消息的时间
localTime: , //数字类型;客户端发送/收到此消息的时间
chatType: '', //字符串类型;本条消息的类型,取值范围如下:
//chat:单聊会话
//groupChat:群聊会话
//chatRoom:聊天室会话
status: '', //字符串类型:消息的状态,取值范围如下:
//pending:发送未开始
//delivering:正在发送
//successed:发送成功
//failed:发送失败
isReadAcked: , //布尔类型;已读回执是否已发送/收到, 对于发送方表示是否已经收到已读回执,对于接收方表示是否已经发送已读回执
isDeliverAcked: , //布尔类型;送达回执是否已发送/收到,对于发送方表示是否已经收到送达回执,对于接收方表示是否已经发送送达回执,如果EMOptions设置了enableDeliveryAck,SDK收到消息后会自动发送送达回执
isRead: , //布尔类型;是否已读
ext: {}, //JSON 对象;消息扩展,Key值类型必须是NSString, Value值类型必须是NSString或者 NSNumber类型的 BOOL, int, unsigned in, long long, double
body: {} //JSON 对象;消息体(消息包含的内容),,详情参考附录:消息体内容
}
消息体内容
- 类型:JSON 对象
- 描述:消息体包含的内容及其相关信息
- 内部字段:
{
type: '', //字符串类型;消息体的类型,取值范围如下:
//text:文本类型
//image:图片类型
//video:视频类型
//location:位置类型
//voice:语音类型
//file:文件类型
//cmd:命令类型
...: ... //消息体除type外的其它内容,详情参考附录:消息体-文本、图片、视频、位置、语音、文件、命令
}
消息体-文本
- 类型:JSON 对象
- 描述:文本类型的消息体内容
- 内部字段:
{
type: 'text',
text: '' //字符串类型;文本内容
}
消息体-图片
- 类型:JSON 对象
- 描述:图片类型的消息体内容
- 内部字段:
{
type: 'image',
displayName: '', //字符串类型;附件的显示名
localPath: '', //字符串类型;附件的本地路径
remotePath: '', //字符串类型;附件在服务器上的路径
secretKey: '', //字符串类型;附件的密钥, 下载附件时需要密匙做校验
fileLength: , //数字类型;附件的大小, 以字节为单位
downloadStatus: '', //字符串类型;附件的下载状态,取值范围如下:
//downloading:正在下载
//successed:下载成功
//failed:下载失败
//pending:准备下载
thumbnailDownloadStatus: '',//字符串类型;缩略图下载状态,取值范围如下:
//downloading:正在下载
//successed:下载成功
//failed:下载失败
//pending:准备下载
size: { // JSON 对象;图片大小
width: , //数字类型;图片的宽
height: //数字类型;图片的高
},
compressionRatio: , //数字类型;设置发送图片消息时的压缩率,1.0时不压缩,默认值是0.6,如果设置了小于等于0的值,则使用默认值
thumbnailDisplayName: '', //字符串类型;缩略图的显示名
thumbnailLocalPath: '', //字符串类型;缩略图的本地路径
thumbnailRemotePath: '', //字符串类型;缩略图在服务器的路径
thumbnailSecretKey: '', //字符串类型;缩略图的密钥, 下载缩略图时需要密匙做校验
thumbnailSize: { // JSON 对象;缩略图片大小
width: , //数字类型;图片的宽
height: //数字类型;图片的高
},
thumbnailFileLength: //数字类型;缩略图文件的大小, 以字节为单位
}
消息体-视频
- 类型:JSON 对象
- 描述:视频类型的消息体内容
- 内部字段:
{
type: 'video',
duration: '', //数字类型;视频时长, 秒为单位
displayName: '', //字符串类型;附件的显示名
localPath: '', //字符串类型;附件的本地路径
remotePath: '', //字符串类型;附件在服务器上的路径
secretKey: '', //字符串类型;附件的密钥, 下载附件时需要密匙做校验
fileLength: , //数字类型;附件的大小, 以字节为单位
downloadStatus: '', //字符串类型;附件的下载状态,取值范围如下:
//downloading:正在下载
//successed:下载成功
//failed:下载失败
//pending:准备下载
thumbnailLocalPath: '', //字符串类型;缩略图的本地路径
thumbnailRemotePath: '', //字符串类型;缩略图在服务器的路径
thumbnailSecretKey: '', //字符串类型;缩略图的密钥, 下载缩略图时需要密匙做校验
thumbnailSize: { // JSON 对象;缩略图片大小
width: , //数字类型;图片的宽
height: //数字类型;图片的高
},
thumbnailDownloadStatus: '',//字符串类型;缩略图下载状态,取值范围如下:
//downloading:正在下载
//successed:下载成功
//failed:下载失败
//pending:准备下载
}
消息体-位置
- 类型:JSON 对象
- 描述:位置类型的消息体内容
- 内部字段:
{
type: 'location',
address: '', //字符串类型;地址信息
latitude: , //数字类型;纬度
longitude: //数字类型;经度
}
消息体-语音
- 类型:JSON 对象
- 描述:语音类型的消息体内容
- 内部字段:
{
type: 'voice',
duration: '', //数字类型;语音时长, 秒为单位
displayName: '', //字符串类型;附件的显示名
localPath: '', //字符串类型;附件的本地路径
remotePath: '', //字符串类型;附件在服务器上的路径
secretKey: '', //字符串类型;附件的密钥, 下载附件时需要密匙做校验
fileLength: , //数字类型;附件的大小, 以字节为单位
downloadStatus: '' //字符串类型;附件的下载状态,取值范围如下:
//downloading:正在下载
//successed:下载成功
//failed:下载失败
//pending:准备下载
}
消息体-文件
- 类型:JSON 对象
- 描述:文本类型的消息体内容
- 内部字段:
{
type: 'file',
displayName: '', //字符串类型;附件的显示名
localPath: '', //字符串类型;附件的本地路径
remotePath: '', //字符串类型;附件在服务器上的路径
secretKey: '', //字符串类型;附件的密钥, 下载附件时需要密匙做校验
fileLength: , //数字类型;附件的大小, 以字节为单位
downloadStatus: '' //字符串类型;附件的下载状态,取值范围如下:
//downloading:正在下载
//successed:下载成功
//failed:下载失败
//pending:准备下载
}
消息体-命令
- 类型:JSON 对象
- 描述:命令类型的消息体内容
- 内部字段:
{
type: 'cmd',
action: '', //字符串类型;命令内容
}