easeRegister login isAutoLogin logout addConnectionListener addAutoLoginListener addAccountListener sendHMSPushTokenToServer
addCallEventListener addCallStateListener addCallEndListener addRightButtonListener addChatListener groupInvite groupChat chatInvite makeCall pauseCall resumeCall closeCall chat closeConversation addRecordButtonListener addAvatarListener chatList refreshChatList contactsList refreshContactsList configureChat setHandsFreeEnable setSendEnable addSendListener
###创建群组、添加/删除好友、获取好友列表
createGroup destroyGroup getGroupInfo addContact addContactListener setAutoAcceptFriendInvitation approveFriendRequest declineFriendRequest deleteContact getContacts addMembersToGroup inviteUser removeMembersFromGroup changeGroupSubject leaveGroup
joinPublicGroup requestToJoinPublicGroup approveJoinGroupRequest declineJoinGroupRequest acceptInvitationFromGroup declineGroupInvitation addGroupListener setAutoAcceptGroupInvitation getGroupsListFromServer getAllPublicGroups
###消息、会话、聊天
getConversation deleteConversation deleteConversations getAllConversations loadMessageWithId lastReceivedMessage sendText sendImage sendLocation sendVoice sendVideo sendFile sendCmd downloadMessageThumbnail downloadMessageAttachments sendMessageReadAck addMessageListener removeMessageListener loadMessageFromDB setConversationToTop markMessageAsRead markAllMessagesAsRead fetchHistoryMessagesFromServer recallMessage joinChatroom leaveChatroom destroyChatroom
setLocalNotification setPushOption setApnsNickname ignoreGroupPush ignoreGroupsPush getAllIgnoredGroupIds
为帮助用户更好更快的使用插件,论坛维护了一个示例,示例中包含示例代码、知识点讲解、注意事项等,供您参考。
环信是北京易掌云峰科技有限公司旗下一家企业级服务软件提供商,环信成立于2013年4月,并于2016年荣膺“Gartner 2016 Cool Vendor”。产品有国内上线最早规模最大的即时通讯云平台——环信即时通讯云,移动端最佳实践的全媒体智能云客服平台—环信移动客服。截至2016年上半年,环信即时通讯云共服务了82149家App客户,环信移动客服共服务了29437家企业用户.
主要产品:
环信移动客服——全媒体智能云客服倡导者。
环信即时通讯云——国内最大的即时通讯云PaaS平台。
本插件封装了环信即时通讯云的开放SDK。基于官方发布的 easeChat 插件,在注册登录类接口基础上,扩展添加了 UI 类接口,适用于对 UI 设计要求不高的项目。可直接调用相关接口弹出聊天对话页面,真正实现了敏捷开发。
注意:
UIEaseChat 是针对对UI和功能需求不那么高的开发者推出的插件。如果你的项目对UI和功能要求很深,请在充分调研本插件是否满足需求后再决定使用。本插件提供的UI接口不满足需求,建议使用 easeChat 插件,让前端去实现UI部分。UIEaseChat 插件就是基于easeChat提供的接口基础上扩展了UI相关的部分接口。请在项目启动前做好调研评估后再决定是否使用本插件。
1. 注册
2. 服务器端集成
3. 客户端集成(插件使用)
使用此插件之前必须先配置 config 文件,配置方法如下:
<feature name="UIEaseChat">
<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平台配置如下(iOS平台忽略此步骤)
<meta-data
name="EASEMOB_APPKEY"
value="1176170302115001#test" />
value:为appKey
环信为 IM 部分提供了 APNS 推送功能(本插件暂未封装推送相关功能,后期版本会逐步添加),如果您要使用,请跳转到APNS离线推送。
android平台集成发送位置功能注意事项(集成百度地图)
本插件的聊天界面有发送位置的功能,如要正常使用该功能,需要到百度地图的开发者平台注册应用,并申请appKey.并配置到config文件中。iOS平台定位功能不收本配置影响
配置示例:
<feature name="bMap">
<param name="android_api_key" value="WP99x2mSUWEysZxUaMh0GiGCYhBV8CQI" />
<param name="ios_api_key" value="81qz3dBYB5q2nGji4IYrawr1" />
</feature>
字段描述:
本文主要介绍了使用环信 IM 时,何时会收到远程推送、如何使用远程推送、如何获取远程推送的内容。
环信 SDK 根据 iOS App 运行的特性,主要有以下三种运行状态:
1、 当App在前台可见的时候,SDK处于前台活跃状态,此时是使用SDK长连接(addMessageListener接口 receive事件)接收消息。
2、 当App进入后台且在2分钟之内的时候,SDK处于后台活跃状态,此时是使用SDK长连接接收消息(addMessageListener接口 receive事件)。此时收到的消息会,插件会通过弹出本地通知的形式提醒用户,用户单击通知提示会启动该App。开发者亦可通过 setLocalNotification 接口设置此时是否弹出本地通知的提示。
3、 当App进入后台超过2分,被系统挂起,此时SDK处于不活跃状态,或者是主动把App进程杀死,此时如果有新消息,是通过苹果的APNs服务进行提醒的。用户点击通知提示框,开发者可通过 api.addEventListener 监听获取推送消息,详情参考下文。当App再次启动,SDK会去服务器拉取不活跃期间的消息。
集成推送功能流程如下文所示。此过程中涉及到的 AppID 即为 Bundle Identifie,与 YonBuilder移动开发 平台上的包名是同一个东西,在 YonBuilder移动开发 平台上应用的概览里可以查看。
登录苹果开发者中心申请推送证书,本过程操作详情参考配置环信推送证书
将上一步生成的 p12 证书上传到环信:登录环信管理后台,找到要上传证书的Appkey,点击进入详情。选择“推送证书”,然后选择“iOS”,为证书起名,并记住名称,并配置在config.xml文件中(详情参考上文config 文件配置方法)。选择上传证书,将上一步中生成的P12文件上传,并设置导出时设置的密码。选择证书类型,此处是“开发环境”(如果之前用的是production,则此处应该选择生产)。填写应用包名,应为bundle id,点击上传,完成上传证书操作。本过程操作详情参考上传环信推送证书
将 1 过程中生成的 provisioning profile 文件和证书上传 YonBuilder移动开发 平台,即可在 YonBuilder移动开发 平台应用打包出 ipa 安装包并安装(正式版发布到苹果商店,通过苹果商店下载安装)
以上步骤都已经实现后,还需要使用您 App 的用户允许通知,才能收到远程推送。您可以在设备的设置应用中,查看当前App是否允许通知。
如果 App 当前为活跃状态且未被系统冻结(按home键2分钟内app在后台运行状态),则您可通过在 addMessageListener 接口中监听 receive 事件捕获该消息,详情参考 addMessageListener 接口说明。此时若允许本地通知,则插件会弹出本地通知的提示框,用户点击该提示框,iOS系统会启动本App,同时api.addEventListener也会受到消息。
证书到期后,要更换新的推送证书,需要在环信管理后台将旧的删除,之后重新上传,上传时的命名要与旧证书的命名一致。一个appkey下可以传多个证书,这就可以实现夸App聊天,在不同App中初始化sdk的时候,指定不同的推送证书,每个证书对应当前App的bundle id,这样,用户在登录不同的App的时候就会绑定到不同的推送证书,从而实现夸App的聊天和推送。
注意:本插件 iOS 平台上最低适配系统版本为 iOS 8.0
重要提示:
本插件可与官方发布的 easeChat 插件同时使用。两者注册、登录相关的接口功能一致,实现的效果相同,如:调动 easeChat 插件的登录接口 login 后,可直接调用本插件的 “带 UI 的聊天对话页面” 类接口,无需再调用 UIEaseChat.login 接口登录。因为 easeChat 和 UIEaseChat 插件都是封装的环信的移动端开放 SDK,App 启动时,SDK内部会初始化一个单例对象。若已用 easeChat 插件登录后,则 UIEaseChat 插件可直接使用登陆后的对象。
注:android上从1.2.8版本开始UIEaseChat插件不可与easeChat 1.0.9以后的版本一起编译;开发者只可以用其中的一个插件
android的聊天界面中集成了发送视频的功能,根据环信服务器的限制,发送视频的大小不能超过10M;
由于android不支持收到来电的监听(addCallEventListener),所以在传递头像的问题上是由发起方传递过来的,建议用widget,如果要用fs,请确保android本地图片存在。
android从1.2.7版本开始,编译需要使用升级环境编译
android 1.3.6版本之前点击通知直接打开聊天页面不以此方式通知,1.3.6版本以及1.3.6以后版本点击通知不打开聊天页面以此方式通知 开发者需要自行打开聊天页面
点击通知栏的远程推送时,如果此时 App 已经被系统冻结,则YonBuilder移动开发会将本次推送的内容通过事件监听回调的方式交给开发者。具体使用如下:
api.addEventListener({
name: 'noticeclicked'
}, function(ret) {
if (ret && ret.value) {
var type = ret.type;//0YonBuilder移动开发收到的推送内容,1插件开发者自定义的
var result = ret.value;//推送内容
}
})
{
“localNotification”:false,//是否是本地通知,若为true则下文数据格式同addMessageListener接口监听receive事件回调的数据格式
"aps":{
"alert":{
"body":"您有一条新消息" // 消息内容
},
"badge":1, // 角标数
"sound":"default" // 提示音
},
"e":"自定义推送扩展",//自定义推送扩展
"f":"6001", // 消息发送方
"t":"6006", // 消息接收方
"m":"373360335316321408", // 消息id
"g":"1421300621769" // 群组id(如果是单聊则没有该字段)
}
<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推送渠道配置,渠道描述。
iOS定位消息点击跳转百度地图、高德地图需要在config文件配置可被检测的URL Scheme,否则无法跳转
<preference name="querySchemes" value="baidumap,iosamap" />
easeRegister({params},callback(ret, err))
username:
password:
ret:
{
status: true //布尔类型;是否注册成功,true|false
}
err:
{
code: 1, //数字类型;错误码
msg: '' //字符串类型;错误信息
}
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.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({params},callback(ret, err))
username:
password:
autoLogin:
类型:布尔
描述:是否开启自动登录(仅支持ios)
默认:false
说明:
自动登录:即首次登录成功后,不需要再次调用登录方法,在下次 APP 启动时,SDK 会自动为您登录。并且如果您自动登录失败,也可以读取到之前的会话信息。
本插件自动登录属性默认是关闭的,需要您在登录时自定义设置,以便您在下次 APP 启动时不需要再次调用环信登录,并且能在没有网的情况下得到会话列表。
自动登录在以下几种情况下会被取消:
用户调用了插件的登出动作;
用户在别的设备上更改了密码,导致此设备上自动登录失败;
用户的账号被从服务器端删除;
用户从另一个设备登录,把当前设备上登录的用户踢出。
所以,在您调用登录方法前,应该先调用 isAutoLogin 接口判断是否设置了自动登录,如果设置了,则不需要您再调用。可通过 addAutoLoginListener 接口监听自动登录完成的回调。
ret:
{
status: true //布尔类型;是否登录成功,true|false
}
err:
{
code: 1, //数字类型;错误码
msg: '' //字符串类型;错误信息
}
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.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))
ret:
{
status: true //布尔类型;是否设置了自动登录,true|false
}
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.isAutoLogin(function(ret, err) {
if (ret.status) {
alert('已开启自动登录');
} else {
alert('未开启自动登录');
}
});
iOS系统,Android系统
可提供的 1.0.0 及更高版本
##logout
退出登录
退出登录分两种类型:主动退出登录和被动退出登录。
在被动退出时插件内部处理,不需要调用本接口。
logout(callback(ret, err))
ret:
{
status: true //布尔类型;是否成功退出登录,true|false
}
err:
{
code: 1, //数字类型;错误码
msg: '' //字符串类型;错误信息
}
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.logout(function(ret, err) {
if (ret.status) {
api.alert({ msg:'登录成功'});
} else {
api.alert({ msg:JSON.stringify(err)});
}
});
iOS系统,Android系统
可提供的 1.0.0 及更高版本
连接服务器的状态变化事件的监听
有以下几种情况, 会引起该方法的调用:
当掉线时,SDK 会自动重连,只需要监听重连相关的回调,无需进行任何操作。
addConnectionListener(callback(ret))
ret:
{
state: 'connected' //字符串类型;网络连接状态,取值范围如下:
//connected:已连接
//disconnected:未连接
}
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.addConnectionListener(function(ret) {
api.alert({msg: JSON.stringify(ret)});
});
iOS系统,Android系统
可提供的1.0.0及更高版本
自动登录完成时的回调事件监听(仅支持ios)
addAutoLoginListener(callback(ret, err))
ret:
{
complete: true //布尔类型;自动登录是否完成,true|false
}
err:
{
code: 1, //数字类型;错误码
msg: '' //字符串类型;错误信息
}
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.addAutoLoginListener(function(ret) {
if (ret.complete) {
api.alert({ msg:'自动登录成功'});
} else {
api.alert({ msg:JSON.stringify(err)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
账号异常事件的监听
addAccountListener(callback(ret))
ret:
{
eventType: 'otherLogin' //字符串类型;监听的事件类型,取值范围如下:
//otherLogin:当前登录账号在其它设备登录事件
//remove:当前登录账号已经被从服务器端删除事件
//forbid:服务被禁用事件(仅支持ios)
}
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.addAccountListener(function(ret) {
api.alert({ msg:ret.eventType});
});
iOS系统,Android系统
可提供的1.0.0及更高版本
设置音视频通话的监听
可在本监听的回调函数内设置音视频通话的用户头像
addCallEventListener({params},callback(ret))
name:
ret:
{
callInfo: { //JSON对象;收到来电呼叫的信息,仅当name 为callDidReceive时有值
callId: '', //字符串类型;会话标识符
localName:'', //字符串类型;通话本地的username
remoteName:'',//字符串类型;通对方的username
type: //数字类型;通话的类型,0:语音;1:视频
}
confInfo: { //JSON对象;收到会议(群聊)邀请的信息,仅当name 为didRecvInvite时有值
confId:"", //字符串类型; 会议ID
password:'', //字符串类型;会议密码
ext:'' //字符串类型; 扩展信息,json字符串,格式如下:{“type”:'voice',"creater":"","userList":['','']},其中type为群聊类型voice(语音)、video(视频),creater为创建者name,userList为成员(name)列表,groupId为从群聊打开会议时群聊的id。
}
}
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.addCallEventListener({
name:'callDidReceive'
},function(ret){
console.log(JSON.stringify(ret));
});
iOS系统
可提供的 1.0.0 及更高版本
设置音视频通话状态的监听
addCallStateListener(callback(ret))
ret:
{
state:'' , //通话状态;取值如下
//connected:双方已经建立连接文字提示(双方已经建立连接但是还没有接听)
//network_unstable:网络不稳定
//network_normal:网络恢复正常
//network_disconnected:网络中断
//accepted:已接听
callId:'', //字符串类型;会话id
isRecord:, //布尔类型 ;是否保存了录音
serverRecordId:'' //字符串类型;会话在服务器保存了录音的id
}
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.addCallStateListener(function(ret){
console.log(JSON.stringify(ret));
});
iOS系统,Android系统
可提供的 1.1.8 及更高版本
添加单聊语音和视频通话结束监听
addCallEndListener(callback(ret))
{
reason: '', //字符类型;通话结束原因
//0:对方挂断
//1:对方没有响应
//2:对方拒接
//3:对方占线
//4:失败
//5:功能不支持
//6:对方不在线
time:'10', //字符类型;通话时长,单位为秒
callType:'1', //数字类型;通话类型;0:实时语音1:实时视频
callId:'1', //字符类型;(Android不支持)会话标识符;音视频通话的id
localName:'123',//字符类型;通话本地的username
remoteName:'321',//字符类型;对方的username
isCaller:true, //布尔类型;是否为主叫方
conversationId:''//字符类型;会话id,(ios不支持)
}
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.addCallEndListener(function(ret){
api.alert({ msg:JSON.stringify(ret)});
});
iOS系统,Android系统
可提供的 1.0.0 及更高版本
注册华为推送,上传token
sendHMSPushTokenToServer({params})
token:
appid:
var easeChat = api.require('UIEaseChat');
easeChat.sendHMSPushTokenToServer({
token: '',
appid: ''
});
Android系统
可提供的 1.2.7 及更高版本
添加聊天页面右边按钮监听
addRightButtonListener(callback(ret))
{
reason: '', //字符类型;点击聊天页面右边按钮;-1为直接点击聊天页面右边按钮;0及以上为点击下拉菜单的下标,由上往下从0开始
}
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.addRightButtonListener(function(ret){
api.alert({ msg:JSON.stringify(ret)});
});
iOS系统,Android系统
可提供的 1.1.0 及更高版本
添加聊天页面监听
addChatListener(callback(ret))
{
reason: '', //字符类型;
//open:聊天页面打开
//close:聊天页面关闭
//message:发送了一条消息
state:true //布尔类型,消息是否发送成功, reason为message时有效
message: {} //JSON 对象;消息详情参考附录:消息内容 ;reason为message时有效
}
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.addChatListener(function(ret){
api.alert({ msg:JSON.stringify(ret)});
});
iOS系统,Android系统
可提供的 1.1.0 及更高版本
打开群聊邀请页面,用户接受邀请后插件自动跳转到群聊界面
可在群聊邀请的监听接口 addCallEventListener 回调函数内调用此接口
app端发起群聊通话android端自动弹出邀请页面,pc端发起群聊通话android也需要调用此接口
groupInvite({params},callback(ret))
type:
confId:
creater:
groupId:
createrNickname:
userList:
bg:
avatar:
{
'username':'avatarpath',
'username':'avatarpath
}
{
status: '' //布尔类型;用户是否接受邀请
}
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.groupInvite({
chatType: 'video',
userList:['huanxinUser1','huanxinUser2']
},function(ret){
if(!ret.status){
api.alert('用户拒绝');
}
});
iOS系统,Android系统
可提供的 1.0.0 及更高版本
创建群聊并打开群聊界面,同时添加邀请群聊成员
groupChat({params})
type:
userList:
bg:
avatar:
{
'username':'avatarpath',
'username':'avatarpath
}
createrNickname:
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.groupChat({
chatType: 'video',
userList:['huanxinUser1','huanxinUser2']
});
iOS系统,Android系统
可提供的 1.0.0 及更高版本
打开群聊邀请页面,用户接受邀请后插件自动跳转到音视频聊天界面
可在单聊邀请的监听接口 addCallEventListener 回调函数内调用此接口
请在监听到来电请求后调用此接口,否则无效
chatInvite({params},callback(ret))
android不支持此接口,收到来电后自动弹出通话界面
type:
username:
nickname:
bg:
avatar:
{
status: '' //布尔类型;用户是否接受邀请
}
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.chatInvite({
chatType: 'video',
username:'huanxinUser1'
},function(ret){
if(!ret.status){
api.alert('用户拒绝');
}
});
iOS系统
可提供的 1.0.0 及更高版本
发起音视频单聊
makeCall({params})
username:
nickname:
{
maker: '', //(可选项)字符串类型;发起者昵称,若不传或传空则显示用户id
invitee:'' //(可选项)字符串类型;被邀请者昵称,若不传或传空则显示用户id
}
type:
avatar:
{
local:'', //(可选项)字符串类型;通话本地的用户头像地址,(支持fs://,widget://)(此参数ios忽略)
remote:'' //(可选项)字符串类型;通对方的用户头像地址,(支持 fs://,widget://)
}
bg:
recordOnServer:
mergeStream:
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.makeCall({
conversationId: '123',
type: 'voice',
avatar: {
remote: '',
local:''
},
bg:''
});
iOS系统,Android系统
可提供的 1.0.0 及更高版本
设置语音/视频通话界面免提按钮是否可用
setHandsFreeEnable({params})
enable:
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.setHandsFreeEnable({
enable: true
});
iOS系统,Android系统
可提供的 1.1.9 及更高版本
设置聊天页面发送按钮是否可用
setSendEnable({params})
enable:
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.setSendEnable({
enable: true
});
iOS系统,Android系统
可提供的 1.5.3 及更高版本
聊天页面内发送事件监听
addSendListener(callback(ret))
ret:
{
eventType: 'send'
}
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat. addSendListener(function(ret) {
api.alert({msg:JSON.stringify(ret)});
});
iOS系统,Android系统
可提供的1.5.3及更高版本
暂停音视频单聊
pauseCall()
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.pauseCall({);
iOS系统,Android系统
可提供的 1.1.6 及更高版本
恢复音视频通话
resumeCall()
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.resumeCall();
iOS系统,Android系统
可提供的 1.1.6 及更高版本
挂断音视频通话
closeCall({params})
chatType:
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.closeCall({
chatType: 'chat',
});
iOS系统,Android系统
可提供的 1.1.6 及更高版本
根据会话 ID 和类型创建并打开聊天页面
chat({params})
conversationId:
chatType:
callishidden:
hideVideo:
navigationBar:
{
title: 'YonBuilder移动开发', //字符串类型;聊天页面标题;默认:40
titleColor: '#fff', //字符串类型;标题文字颜色;默认:#fff
bgColor: '#d6d6d6', //字符串类型;导航条背景色;默认:#d1d1d1
backColor: '#fff', //字符串类型;导航条返回按钮色;默认:#fff(android不支持此参数)
locationTitleColor:'#000',//字符串类型;定位信息页面标题文字颜色;默认:#000(Android不支持此参数)
locationBackColor: '#000' //字符串类型;定位信息页面导航条返回按钮色;默认:#000(Android不支持此参数)
locationSendColor: '#000' //字符串类型;定位信息页面导航条发送按钮色;默认:#000(Android不支持此参数)
statusBarAppearance:false //布尔类型;是否设置状态栏为沉浸式效果;默认值:false(iOS不支持此参数)
navigationBarBg:'' //字符串类型;导航条背景图片;如果此参数有值,将忽略bgColor;默认值:无
backImg:'' //字符串类型;返回按钮的图片路径;(iOS如果此参数有值,将忽略backColor;android如果此参数没有值,将用插件默认提供的)
}
avatar:
{
size: 40, //数字类型;头像的大小;默认:40
corner: 20, //数字类型;头像圆角;默认:20
local:'', //(可选项)字符串类型;单聊时用户头像地址,(支持fs://,widget://)
remote:'' //(可选项)字符串类型;单聊时对方的用户头像地址,(支持fs://,widget://)
}
text:
{
size: 15, //数字类型;消息文本的大小;默认:15
color: '' //字符串类型;消息文本的颜色;默认:黑色
}
location:
{
size: 12, //数字类型;位置消息文本的大小;默认:12
color: '' //字符串类型;位置消息文本的颜色;默认:#fff
}
callbg:
avatarInfo:
{
'username':'avatarpath',
'username':'avatarpath
}
nickname:
{
'username':'nickname',
'username':'nickname'
}
userList:
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.chat({
conversationId: '123',
chatType: 'chat',
location: {
size: 12,
color: '#fff'
},
text: {
size: 15,
color: '#000'
},
avatar: {
size: 40,
corner: 20
},
navigationBar:{
title: 'YonBuilder移动开发',
titleColor: '#fff',
bgColor: '#d6d6d6',
backColor: '#fff',
locationTitleColor:'#fff',
locationBackColor: '#fff'
}
});
iOS系统,Android系统
可提供的 1.0.0 及更高版本
关闭会话页面
closeConversation()
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.closeConversation();
iOS、Android系统
可提供的1.1.0及更高版本
聊天页面底部录音按钮监听
addRecordButtonListener(callback(ret))
ret:
{
eventType: '' //字符串类型;录音按钮点击事件,取值范围如下:
//touchDown:录音按钮按下
//touchUpInside:手指在录音按钮内部时离开
//touchUpOutside:手指在录音按钮外部时离开
//dragInside:手指移动到录音按钮内部
//dragOutside:手指移动到录音按钮外部
}
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.addRecordButtonListener(function(ret) {
api.alert({msg:JSON.stringify(ret)});
});
iOS系统,Android系统
可提供的1.0.0及更高版本
聊天页面内头像点击事件监听
addAvatarListener(callback(ret))
ret:
{
messageModel: { //JSON 对象;头像信息
message: {} //JSON 对象;消息详情参考附录:消息内容
}
}
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.addAvatarListener(function(ret) {
api.alert({msg:JSON.stringify(ret)});
});
iOS系统,Android系统
可提供的1.0.0及更高版本
打开聊天列表页面
chatList({params},callback(ret,err))
navigationBar:
{
title: 'YonBuilder移动开发', //字符串类型;聊天页面标题;默认:40
titleColor: '#fff', //字符串类型;标题文字颜色;默认:#fff
bgColor: '#d6d6d6', //字符串类型;导航条背景色;默认:#d1d1d1
backColor: '#fff' //字符串类型;导航条返回按钮色;默认:#fff
}
callbg:
avatar:
{
'username':'avatarpath',
'username':'avatarpath
}
nickname:
{
'username':'nickname',
'username':'nickname'
}
callishidden:
hideVideo:
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.chatList({
navigationBar:{
title: 'YonBuilder移动开发',
titleColor: '#fff',
bgColor: '#d6d6d6',
backColor: '#fff'
}
});
iOS系统,Android系统
可提供的 1.0.0 及更高版本
刷新聊天列表
refreshChatList(callback(ret,err))
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.refreshChatList();
iOS系统,Android系统
可提供的 1.0.0 及更高版本
打开联系人列表页面
contactsList({params},callback(ret,err))
navigationBar:
{
title: 'YonBuilder移动开发', //字符串类型;聊天页面标题;默认:40
titleColor: '#fff', //字符串类型;标题文字颜色;默认:#fff
bgColor: '#d6d6d6', //字符串类型;导航条背景色;默认:#d1d1d1
backColor: '#fff' //字符串类型;导航条返回按钮色;默认:#fff
}
callbg:
avatar:
{
'username':'avatarpath',
'username':'avatarpath
}
nickname:
{
'username':'nickname',
'username':'nickname'
}
callishidden:
hideVideo:
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.contactsList({
navigationBar:{
title: 'YonBuilder移动开发',
titleColor: '#fff',
bgColor: '#d6d6d6',
backColor: '#fff'
}
});
iOS系统,Android系统
可提供的 1.0.0 及更高版本
刷新联系人列表
refreshContactsList(callback(ret,err))
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.refreshContactsList();
iOS系统,Android系统
可提供的 1.0.0 及更高版本
环信相关配置
configureChat({params})
navigationBar:
{
titleColor: '#fff', //字符串类型;标题文字颜色;默认:#fff
bgColor: '#d6d6d6', //字符串类型;导航条背景色;默认:#d1d1d1
backColor: '#fff', //字符串类型;导航条返回按钮色;默认:#fff(android不支持此参数)
locationTitleColor:'#000',//字符串类型;定位信息页面标题文字颜色;默认:#000(Android不支持此参数)
locationBackColor: '#000' //字符串类型;定位信息页面导航条返回按钮色;默认:#000(Android不支持此参数)
locationSendColor: '#000' //字符串类型;定位信息页面导航条发送按钮色;默认:#000(Android不支持此参数)
statusBarAppearance:false //布尔类型;聊天页面是否设置状态栏为沉浸式效果;默认值:false(iOS不支持此参数)
navigationBarBg:'' //字符串类型;聊天页面导航条背景图片;如果此参数有值,将忽略bgColor;默认值:无
backImg:'' //字符串类型;聊天页面返回按钮的图片路径;(iOS如果此参数有值,将忽略backColor;android如果此参数没有值,将用插件默认提供的)
backWide:40, //数字类型;返回按钮的宽,iOS在backImg没有值的情况下使用的是系统返回按钮,无法修改大小(此参数无效),若想修改返回按钮大小,请设置backImg参数自定义返回按钮;默认:40
backHigh:40, //数字类型;返回按钮的高,iOS在backImg没有值的情况下使用的是系统返回按钮,无法修改大小(此参数无效),若想修改返回按钮大小,请设置backImg参数自定义返回按钮;默认:40
}
msgNotify:
msgVoice
msgVibrate
input
rightButtonInfo:
{
style:0, //数字类型;按钮样式,0为普通按钮,1为点击弹出下拉菜单;默认:0
bgImage:'', //字符类型;按钮图片,
isPush:false, //本参数设置为true,将直接会跳转到群详情页面且不会返回监听事件,单聊和下拉菜单设置无效;默认:false
popups:[{ //数组类型;下拉菜单各级菜单图片及名称,style为1有效,图片仅支持本地图片(支持widget、fs)
title:'', //字符类型;名称
image:'' //字符类型;图片地址,仅支持本地图片(支持widget、fs)
}],
styles:{ //JSON 对象;下拉菜单样式
width:130, //数字类型;下拉菜单宽度 ;默认130 (android不支持, 自适应)
font:14, //数字类型;下拉菜单字体大小 ;默认16
textColor:'#FFFFFF', //字符类型;字体颜色;默认:#FFFFFF
bgColor:'#808080' //字符类型;下拉菜单背景颜色;默认:#808080(Android不支持)
}
}
historyButtonInfo:
{
bgImage:'' //字符类型;按钮图片
}
callHint:
{
connected :'', //字符类型;双方已经建立连接文字提示(双方已经建立连接但是还没有接听)
network_unstable:'', //字符类型;网络不稳定
network_normal:'', //字符类型;网络恢复正常
network_disconnected :'', //字符类型;网络中断
}
panelUrls:
类型:JSON 对象
描述:(可选项)聊天面板按钮的图片路径,仅支持本地图片(支持widget、fs),不填则默认插件自带图片
内部字段:
{
taking :'', //字符类型;拍照按钮的图片路径
image :'', //字符类型;图片按钮的图片路径
location :'', //字符类型;位置按钮的图片路径
voice :'', //字符类型;语音通话的图片路径
video :'', //字符类型;视频通话按钮的图片路径
file:'', //字符串类型;发送文图片路径
videoRecord:'', //字符串类型;发送录制视频图片路径
}
hideLocation:
hideImage:
hideTaking:
hideSendFile:
hideVideoRecord:
hanguptime:
netDisConnectedAutoExit:
hideEmoticon:
msgExt:
hideVoice:
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.configureChat();
iOS系统,Android系统
可提供的 1.0.7 及更高版本
创建群组
createGroup({params},callback(ret, err))
name:
description:
message:
userCount:
invitees:
['6001','6002','6003','6004']
style:
IsInviteNeedConfirm:
ret:
{
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:
{
code: 1, //数字类型;错误码
msg: '' //字符串类型;错误信息
}
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.createGroup({
name:'YonBuilder移动开发',
description: 'YonBuilder移动开发大牛群',
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 及更高版本
解散群组 ,需要owner/admin权限
destroyGroup({params},callback(ret))
id:
ret:
{
status: true , //布尔类型;是否解散成功,true|false
}
err:
{
code: 1, //数字类型;错误码
msg: '' //字符串类型;错误信息
}
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat. destroyGroup({
id:'123',
},function(ret, err) {
if (ret.status) {
api.alert({ msg:'解散'});
} else {
api.alert({ msg:JSON.stringify(err)});
}
});
iOS系统,Android系统
可提供的 1.0.0 及更高版本
获取制定 id 的群组信息 ,需要owner/admin权限
getGroupInfo({params},callback(ret))
id:
ret:
{
group: { //JSON对象;获取的群组信息
groupId: '', //字符串类型;群组id
subject: '', //字符串类型;群组的主题
description: '', //字符串类型;群组的描述
memberCount: , //数字类型;群组当前的成员数量
setting: { //仅支持ios
style: '', //字符串类型;群组的类型
maxUserCount: //数字类型;群组的最大成员数(3 - 2000,默认是200)
},
owner: '', //字符串类型;群组的所有者,拥有群的最高权限(只有一人)
members: [], //数组类型;群组的成员列表
blackList: [], //数组类型;群组的黑名单,需要owner权限才能查看,非owner返回undefine
isPublic: , //布尔类型;此群是否为公开群
isBlocked: , //布尔类型;是否屏蔽群消息
isPushNotificationEnabled://布尔类型;此群组是否接收消息推送通知,(仅支持ios)
}
}
var UIEaseChat = api.require('UIEaseChat'); UIEaseChat.getGroupInfo({
id:'123',
},function(ret, err) {
api.alert({ msg:JSON.stringify(ret)});
});
iOS系统,Android系统
可提供的 1.0.0 及更高版本
添加好友
addContact({params},callback(ret, err))
name:
message:
ret:
{
status: true , //布尔类型;是否添加成功,true|false
name: '' //字符串类型;用户名
}
err:
{
code: 1, //数字类型;错误码
msg: '' //字符串类型;错误信息
}
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.addContact({
name:'YonBuilder移动开发',
message:'欢迎加入!'
},function(ret, err) {
if (ret.status) {
api.alert({ msg:'添加成功'});
} else {
api.alert({ msg:JSON.stringify(err)});
}
});
iOS系统,Android系统
可提供的 1.0.0 及更高版本
添加好友状态监听
addContactListener(callback(ret))
ret:
{
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 UIEaseChat = api.require('UIEaseChat');
UIEaseChat.addContactListener(function(ret) {
api.alert(ret);
});
iOS系统,Android系统
可提供的1.1.3及更高版本
设置是否自动同意好友申请
setAutoAcceptFriendInvitation({params})
isAutoAcceptFriendInvitation:
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.setAutoAcceptFriendInvitation({
isAutoAcceptFriendInvitation:true
});
iOS系统,Android系统
可提供的1.1.3及更高版本
同意加好友的申请
approveFriendRequest({params},callback(ret, err))
name:
ret:
{
status: true , //布尔类型;是否同意成功,true|false
name: '' //字符串类型;用户名
}
err:
{
code: 1, //数字类型;错误码
msg: '' //字符串类型;错误信息
}
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.approveFriendRequest({
name:'YonBuilder移动开发'
},function(ret, err) {
if (ret.status) {
api.alert({ msg:'同意成功'});
} else {
api.alert({ msg:JSON.stringify(err)});
}
});
iOS系统,Android系统
可提供的 1.0.0 及更高版本
拒绝加好友的申请
declineFriendRequest({params},callback(ret, err))
name:
ret:
{
status: true , //布尔类型;是否拒绝成功,true|false
name: '' //字符串类型;用户名
}
err:
{
code: 1, //数字类型;错误码
msg: '' //字符串类型;错误信息
}
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.declineFriendRequest({
name:'YonBuilder移动开发'
},function(ret, err) {
if (ret.status) {
api.alert({ msg:'同意成功'});
} else {
api.alert({ msg:JSON.stringify(err)});
}
});
iOS系统,Android系统
可提供的 1.0.0 及更高版本
删除好友
deleteContact({params},callback(ret, err))
name:
isDeleteConversation:
ret:
{
status: true , //布尔类型;是否删除成功,true|false
name: '' //字符串类型;用户名
}
err:
{
code: 1, //数字类型;错误码
msg: '' //字符串类型;错误信息
}
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.deleteContact({
name:'YonBuilder移动开发',
isDeleteConversation: true
},function(ret, err) {
if (ret.status) {
api.alert({ msg:'删除成功'});
} else {
api.alert({ msg:JSON.stringify(err)});
}
});
iOS系统,Android系统
可提供的 1.0.0 及更高版本
获取好友列表(仅支持ios)
getContacts({params},callback(ret))
original:
ret:
{
status: true , //布尔类型;是否获取成功,true|false
list: [] //数组类型;获取的好友列表
}
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.getContacts({
original: 'server'
},function(ret) {
api.alert({ msg:JSON.stringify(ret)});
});
iOS系统,Android系统
可提供的 1.0.0 及更高版本
邀请单人或多人进入群组, (注:android如果是群主加人可以调用此接口)
addMembersToGroup({params},callback(ret))
names:
groupId:
message:
ret:
{
status: true , //布尔类型;是否获取成功,true|false
}
err:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.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.0 及更高版本
私有群里,如果开放了群成员邀请,群成员邀请调用该接口邀请成员
inviteUser({params},callback(ret))
names:
groupId:
message:
ret:
{
status: true , //布尔类型;是否获取成功,true|false
}
err:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.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.7 及更高版本
把单人或多人移出群组
removeMembersFromGroup({params},callback(ret))
names:
groupId:
ret:
{
status: true , //布尔类型;是否获取成功,true|false
}
err:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.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.0 及更高版本
修改群组群名称
changeGroupSubject({params},callback(ret))
groupName:
groupId:
ret:
{
status: true , //布尔类型;是否获取成功,true|false
}
err:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.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.0 及更高版本
用户主动退出群组
leaveGroup({params},callback(ret))
groupId:
ret:
{
status: true , //布尔类型;是否获取成功,true|false
}
err:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.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.0 及更高版本
加入一个公开群组
joinPublicGroup({params},callback(ret))
groupId:
ret:
{
status: true , //布尔类型;是否获取成功,true|false
}
err:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.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.0 及更高版本
申请加入一个需批准的公开群组
requestToJoinPublicGroup({params},callback(ret))
groupId:
aMessage:
ret:
{
status: true , //布尔类型;是否获取成功,true|false
}
err:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.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.0 及更高版本
批准入群申请
approveJoinGroupRequest({params},callback(ret))
groupId:
username:
ret:
{
status: true , //布尔类型;是否获取成功,true|false
}
err:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.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.0 及更高版本
拒绝入群申请
declineJoinGroupRequest({params},callback(ret))
groupId:
username:
reason:
ret:
{
status: true , //布尔类型;是否获取成功,true|false
}
err:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.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.0 及更高版本
接受入群邀请
acceptInvitationFromGroup({params},callback(ret))
groupId:
username:
ret:
{
status: true , //布尔类型;是否获取成功,true|false
}
err:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.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.0 及更高版本
拒绝入群邀请
declineGroupInvitation({params},callback(ret))
groupId:
username:
reason:
ret:
{
status: true , //布尔类型;是否获取成功,true|false
}
err:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.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.0 及更高版本
群组状态监听
addGroupListener(callback(ret))
ret:
{
state: 'userJoin', //字符串类型;群组状态,取值范围如下:
//muteMember:有成员被加入禁言列表;此状态下只有muteMembers、groupId字段有效
//unmuteMember:有成员被移出禁言列表;此状态下只有unmuteMembers、groupId字段有效
//userJoin:群组加入新成员
//userLeave:群成员退出
//receiveLeavedGroup:被动退群
//groupDestruction:群解散
//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、receiveLeavedGroup时没有此字段,state为groupInvitationDidReceive和didJoinGroup user为邀请者 state为groupInvitationDidAccept和groupInvitationDidDecline user为被邀请者, android state为receiveLeavedGroup, groupDestruction没有此字段)
groupId:'111', //群组id
receiveReason:'', //申请者的附属信息(当state为userJoin,userLeave,joinGroupDecline,joinGroupApprove,groupInvitationDidAccept没有此字段state为groupInvitationDidReceive receiveReason为邀请信息,state为groupInvitationDidDecline receiveReason为拒绝理由,state为didJoinGroup receiveReason为邀请消息, android state为receiveLeavedGroup, groupDestruction没有此字段)
muteMembers:[], // 被禁言的成员;此字段只有在state为muteMember有效
unmuteMembers:[], // 被解除禁言的成员;此字段只有在state为unmuteMembers有效
}
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.addGroupListener(function(ret) {
api.alert(ret);
});
iOS系统,Android系统
可提供的1.0.0及更高版本
设置用户是否自动同意群邀请(需要在createGroup接口的IsInviteNeedConfirm设置为true的情况下本接口才会生效)
setAutoAcceptGroupInvitation({params},callback(ret))
isAutoAcceptGroupInvitation:
ret:
{
status: true , //布尔类型;是否设置成功,true|false
}
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.setAutoAcceptGroupInvitation({
isAutoAcceptGroupInvitation:true
},function(ret) {
api.alert(ret);
});
iOS系统,Android系统
可提供的 1.0.0 及更高版本
按数目从服务器获取自己加入的群组
getGroupsListFromServer({params},callback(ret,err))
pageNum:
pageSize:
ret:
{
status: true , //布尔类型;是否获取成功,true|false
groups:[{ //JSON对象;获取的群组信息
groupId: '', //字符串类型;群组id
subject: '', //字符串类型;群组的主题
description: '', //字符串类型;群组的描述
memberCount: , //数字类型;群组当前的成员数量
setting: { //仅支持ios
style: '', //字符串类型;群组的类型
maxUserCount: //数字类型;群组的最大成员数(3 - 2000,默认是200)
},
owner: '', //字符串类型;群组的所有者,拥有群的最高权限(只有一人)
isPublic: , //布尔类型;此群是否为公开群
isBlocked: , //布尔类型;是否屏蔽群消息
isPushNotificationEnabled://布尔类型;此群组是否接收消息推送通知,(仅支持ios)
}]
}
err:
{
code: //数字类型;错误码
}
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.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.0 及更高版本
获取公开群组
getAllPublicGroups({params},callback(ret,err))
pageNum:
pageSize:
ret:
{
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:
{
code: //数字类型;错误码
}
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.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.0 及更高版本
将一组成员禁言,需要Owner / Admin权限
muteMembers({params},callback(ret))
muteMembers:
muteMilliseconds:
groupId:
{
status: true , //布尔类型;是否禁言成功,true|false
}
err:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.muteMembers({
muteMembers:['',''],
groupId: '123'
},function(ret) {
api.alert({ msg:JSON.stringify(ret)});
});
iOS系统,Android系统
可提供的 1.0.8 及更高版本
将一组成员解除禁言,需要Owner / Admin权限
unmuteMembers({params},callback(ret))
muteMembers:
groupId:
{
status: true , //布尔类型;是否解除禁言成功,true|false
}
err:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.unmuteMembers({
muteMembers:['',''],
groupId: '123'
},function(ret) {
api.alert({ msg:JSON.stringify(ret)});
});
iOS系统,Android系统
可提供的 1.0.8 及更高版本
变更群组所有者
changeOwner({params})
groupId:
newOwner:
{
status: true , //布尔类型;变更成功,true|false
}
err:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.changeOwner({
newOwner:'lan',
groupId: '123'
},function(ret) {
api.alert({ msg:JSON.stringify(ret)});
});
iOS系统,Android系统
可提供的 1.0.8 及更高版本
新建/获取一个会话
getConversation({params},callback(ret))
conversationId:
type:
ifCreate:
ret:
{
status: true , //布尔类型;是否创建成功,true|false
conversation: {} //JSON 对象;返回会话信息,详细内容参考附件:会话信息
}
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.getConversation({
conversationId: '',
type: 'chat',
ifCreate: true
},function(ret) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
});
iOS系统,Android系统
可提供的 1.0.0 及更高版本
从数据库中获取消息,获取到的消息是startMsgId之前的pagesize条消息;
loadMessageFromDB({params},callback(ret))
conversationId:
type:
startMsgId:
pagesize:
ret:
{
messages: [] //数组对象;返回会话信息,详细内容参考附件:消息内容
}
var easeChat = api.require('UIEaseChat');
easeChat.loadMessageFromDB({
conversationId: '',
type: 'chat',
startMsgId:''
},function(ret) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
});
android系统
可提供的 1.0.0 及更高版本
设置会话是否置顶显示,若为true,chatList接口打开的会话页面里则置顶显示
setConversationToTop({params},callback(ret))
conversationId:
type:
isTop:
bg:
ret:
{
status: true , //布尔类型;是否设置置顶成功,true|false
}
var easeChat = api.require('UIEaseChat');
easeChat.setConversationToTop({
conversationId: '',
isTop: true
},function(ret) {
});
ios,android系统
可提供的 1.0.7 及更高版本
将会话指定消息置为已读
markMessageAsRead({params},callback(ret,err))
conversationId:
type:
messageId:
ret:
{
status: true, //布尔类型;是否设置成功,true|false
}
err:
{
code: //数字类型;错误码
}
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.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.0 及更高版本
将会话所有消息置为已读
markAllMessagesAsRead({params},callback(ret,err))
conversationId:
type:
ret:
{
status: true, //布尔类型;是否设置成功,true|false
}
err:
{
code: //数字类型;错误码
}
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.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.0 及更高版本
从服务器获取指定会话的历史消息;此接口需要开通环信增值服务,未开通不会返回数据
fetchHistoryMessagesFromServer({params},callback(ret))
conversationId:
type:
startMsgId:
pagesize:
ret:
{
messages: [], //数组对象;返回会话信息,详细内容参考附件:消息内容
cursor:10 //字符类型;获取下一段结果的游标
}
var easeChat = api.require('UIEaseChat');
easeChat.fetchHistoryMessagesFromServer({
conversationId: '',
type: 'chat',
startMsgId:''
},function(ret) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
});
iOS系统,Android系统
可提供的 1.1.1 及更高版本
撤回一条消息(此接口必须开通增值服务)
recallMessage({params},callback(ret,err))
conversationId:
type:
messageId:
ret:
{
status: true , //布尔类型;是否撤回成功,true|false
}
err:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
var easeChat = api.require('UIEaseChat');
easeChat.recallMessage({
conversationId:'',
messageId:''
},function(ret,err) {
if(ret.status)
api.alert('撤回消息成功');
});
ios, android系统
可提供的 1.1.9 及更高版本
加入聊天室
joinChatroom({params},callback(ret,err))
conversationId:
ret:
{
status: true , //布尔类型;是否成功,true|false
}
err:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
var easeChat = api.require('UIEaseChat');
easeChat.joinChatroom({
conversationId:''
},function(ret,err) {
api.alert({ msg:JSON.stringify(ret)});
});
ios, android系统
可提供的 1.4.8 及更高版本
离开聊天室
leaveChatroom({params},callback(ret,err))
conversationId:
ret:
{
status: true , //布尔类型;是否成功,true|false
}
err:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
var easeChat = api.require('UIEaseChat');
easeChat.leaveChatroom({
conversationId:''
},function(ret,err) {
api.alert({ msg:JSON.stringify(ret)});
});
ios, android系统
可提供的 1.4.8 及更高版本
解散聊天室(需要owner权限)
destroyChatroom({params},callback(ret,err))
conversationId:
ret:
{
status: true , //布尔类型;是否成功,true|false
}
err:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
var easeChat = api.require('UIEaseChat');
easeChat.destroyChatroom({
conversationId:''
},function(ret,err) {
api.alert({ msg:JSON.stringify(ret)});
});
ios, android系统
可提供的 1.4.8 及更高版本
删除会话
deleteConversation({params},callback(ret,err))
conversationId:
isDeleteMessages:
ret:
{
status: true , //布尔类型;是否删除成功,true|false
conversation: {} //JSON 对象;返回删除的会话信息,详细内容参考附件:会话信息
}
err:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.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({params},callback(ret,err))
conversationIds:
isDeleteMessages:
ret:
{
status: true //布尔类型;是否删除成功,true|false
}
err:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.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 及更高版本
获取所有会话,如果内存中不存在会从DB中加载
getAllConversations(callback(ret,err))
ret:
{
conversations: [] //数组类型;返回的会话信息组成的数组,会话信息详细内容参考附件:会话信息
}
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.getAllConversations(function(ret) {
api.alert({ msg:JSON.stringify(ret)});
});
iOS系统,Android系统
可提供的 1.0.0 及更高版本
根据会话id 及其类型,获取指定消息 ID 的消息
loadMessageWithId({params},callback(ret,err))
conversationId:
type:
messageId:
ret:
{
status: true, //布尔类型;是否获取成功,true|false
message: {} //JSON 对象;获取的消息,详情参考附录:消息内容
}
err:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.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 及更高版本
根据会话id 及其类型,获取收到的对方发送的最后一条消息(仅支持ios)
lastReceivedMessage({params},callback(ret,err))
conversationId:
type:
ret:
{
status: true, //布尔类型;是否获取成功,true|false
message: {} //JSON 对象;获取的消息,详情参考附录:消息内容
}
err:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.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 及更高版本
发送文本消息
sendText({params},callback(ret,err))
conversationId:
chatType:
text:
from:
to:
ext:
ret:
{
status: true, //布尔类型;是否发送成功,true|false
message: {} //JSON 对象;发送的消息,详情参考附录:消息内容;注:此接口返回的消息id是临时id,并不是服务器上的id
}
err:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.sendText({
conversationId: '',
chatType: 'chat',
text: 'YonBuilder移动开发 hello',
from: '',
to: 'YonBuilder移动开发',
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({params},callback(ret,err))
conversationId:
chatType:
path:
displayName:
from:
to:
ext:
ret:
{
status: true, //布尔类型;是否发送成功,true|false
message: {} //JSON 对象;发送的消息,详情参考附录:消息内容;注:此接口返回的消息id是临时id,并不是服务器上的id
}
err:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.sendImage({
conversationId: '',
chatType: 'chat',
path: 'widget://res/abc.png',
displayName: 'cloud',
from: '',
to: 'YonBuilder移动开发',
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({params},callback(ret,err))
conversationId:
chatType:
address:
latitude:
longitude:
from:
to:
ext:
ret:
{
status: true, //布尔类型;是否发送成功,true|false
message: {} //JSON 对象;发送的消息,详情参考附录:消息内容;注:此接口返回的消息id是临时id,并不是服务器上的id
}
err:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.sendLocation({
conversationId: '',
chatType: 'chat',
address: '北京市天安门',
latitude: ,
longitude: ,
from: '',
to: 'YonBuilder移动开发',
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({params},callback(ret,err))
conversationId:
chatType:
path:
displayName:
length:
from:
to:
ext:
ret:
{
status: true, //布尔类型;是否发送成功,true|false
message: {} //JSON 对象;发送的消息,详情参考附录:消息内容;注:此接口返回的消息id是临时id,并不是服务器上的id
}
err:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.sendVoice({
conversationId: '',
chatType: 'chat',
path: 'widget://res/abc.mp3',
displayName: 'cloud',
from: '',
to: 'YonBuilder移动开发',
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({params},callback(ret,err))
conversationId:
chatType:
path:
displayName:
length:
thumbPath:
from:
to:
ext:
ret:
{
status: true, //布尔类型;是否发送成功,true|false
message: {} //JSON 对象;发送的消息,详情参考附录:消息内容;注:此接口返回的消息id是临时id,并不是服务器上的id
}
err:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.sendVideo({
conversationId: '',
chatType: 'chat',
path: 'widget://res/abc.mp4',
displayName: 'cloud',
from: '',
to: 'YonBuilder移动开发',
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({params},callback(ret,err))
conversationId:
chatType:
path:
displayName:
from:
to:
ext:
ret:
{
status: true, //布尔类型;是否发送成功,true|false
message: {} //JSON 对象;发送的消息,详情参考附录:消息内容;注:此接口返回的消息id是临时id,并不是服务器上的id
}
err:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.sendFile({
conversationId: '',
chatType: 'chat',
path: 'widget://res/abc.zip',
displayName: 'cloud',
from: '',
to: 'YonBuilder移动开发',
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({params},callback(ret,err))
conversationId:
chatType:
action:
from:
to:
ext:
ret:
{
status: true, //布尔类型;是否发送成功,true|false
message: {} //JSON 对象;发送的消息,详情参考附录:消息内容;注:此接口返回的消息id是临时id,并不是服务器上的id
}
err:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.sendCmd({
conversationId: '',
chatType: 'chat',
action: '出发',
from: '',
to: 'YonBuilder移动开发',
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 及更高版本
下载缩略图(图片消息的缩略图或视频消息的第一帧图片),
SDK会自动下载缩略图,所以除非自动下载失败,
用户不需要自己下载缩略图
downloadMessageThumbnail({params},callback(ret,err))
conversationId:
chatType:
messageId:
ret:
{
status: true, //布尔类型;是否下载成功,true|false
message: {} //JSON 对象;下载的消息,详情参考附录:消息内容
}
err:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.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 及更高版本
下载消息附件(语音,视频,图片原图,文件),
SDK会自动下载语音消息,所以除非自动下载语音失败,
用户不需要自动下载语音附件
downloadMessageAttachments({params},callback(ret,err))
conversationId:
chatType:
messageId:
ret:
{
status: true, //布尔类型;是否下载成功,true|false
message: {} //JSON 对象;下载的消息,详情参考附录:消息内容
}
err:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.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({params},callback(ret,err))
conversationId:
chatType:
messageId:
ret:
{
status: true, //布尔类型;是否发送成功,true|false
message: {} //JSON 对象;发送的回执的消息,详情参考附录:消息内容
}
err:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.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({params}, callback(ret, err))
name:
ret:
{
conversations: [], //数组类型;仅当 name 为 conversationListDidUpdate 时本参数有值,发送变化的会话信息组成的数组,会话信息参考附录:会话信息
messages: [] //数组类型;仅当 name 非 conversationListDidUpdate 时本参数有值,消息组成的数组,消息详情参考附录:消息内容
isPushMsg: false //布尔类型;仅当 name 非 receive 时本参数有值。表示是否是远程推送而来的消息,本参数仅在iOS平台有效。
//当本参数为 true 时,message数据格式同本文概述部分讲述的api.addEventListener接口获取的value值
}
err:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.addMessageListener({
name: 'receive'
}, function(ret) {
if (ret.messages) {
api.alert({msg:JSON.stringify(ret.messages)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
移除消息相关事件监听
removeMessageListener({params})
name:
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.removeMessageListener({
name: 'receive'
});
iOS系统,Android系统
可提供的1.0.0及更高版本
开启关闭本地通知
开启本地通知后,app在后台运行时通过长连接收到消息时会弹出提示。此时用户点击提示后,iOS系统会启动app,开发者可在api.addEventListener接口获取消息内容,详情参考概述。
setLocalNotification({params})
enable:
title:
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.setLocalNotification({
enable: true,
title: '您有一条新的消息'
});
iOS系统
可提供的 1.0.3及更高版本
设置推送全局属性
setPushOption({params},callback(ret))
displayName:
displayStyle:
noDisturbStatus:
noDisturbingStartH:
noDisturbingEndH:
ret:
{
status: true //布尔类型;是否设置成功,true|false
}
err:
{
code: 1, //数字类型;错误码
msg: '' //字符串类型;错误信息
}
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.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({params},callback(ret))
nickname:
ret:
{
status: true //布尔类型;是否设置成功,true|false
}
err:
{
code: 1, //数字类型;错误码
msg: '' //字符串类型;错误信息
}
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.setApnsNickname({
nickname: ''
},function(ret, err) {
if (ret.status) {
api.alert({ msg:'设置'});
} else {
api.alert({ msg:JSON.stringify(err)});
}
});
iOS系统
可提供的 1.0.3及更高版本
设置群组忽略推送
ignoreGroupPush({params},callback(ret))
groupId:
ret:
{
status: true //布尔类型;是否设置成功,true|false
}
err:
{
code: 1, //数字类型;错误码
msg: '' //字符串类型;错误信息
}
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.ignoreGroupPush({
groupId: ''
},function(ret, err) {
if (ret.status) {
api.alert({ msg:'设置'});
} else {
api.alert({ msg:JSON.stringify(err)});
}
});
iOS系统
可提供的 1.0.3及更高版本
批量设置忽略推送的群组
ignoreGroupsPush({params},callback(ret))
groupIds:
ret:
{
status: true //布尔类型;是否设置成功,true|false
}
err:
{
code: 1, //数字类型;错误码
msg: '' //字符串类型;错误信息
}
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.ignoreGroupsPush({
groupIds: ['','']
},function(ret, err) {
if (ret.status) {
api.alert({ msg:'设置'});
} else {
api.alert({ msg:JSON.stringify(err)});
}
});
iOS系统
可提供的 1.0.3及更高版本
获取忽略推送消息的群组id
getAllIgnoredGroupIds(callback(ret))
ret:
{
status: true //布尔类型;是否获取成功,true|false
ignoredGroupIds:[] //数组类型;获取的群组id组成的数组
}
err:
{
code: 1, //数字类型;错误码
msg: '' //字符串类型;错误信息
}
var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.getAllIgnoredGroupIds(function(ret, err) {
if (ret.status) {
api.alert({ msg:'设置'});
} else {
api.alert({ msg:JSON.stringify(err)});
}
});
iOS系统
可提供的 1.0.3及更高版本
{
conversationId: '', //字符串类型;会话 ID
unreadMessagesCount: , //数字类型;会话未读消息数量
ext: {}, //JSON 对象;会话扩展属性
type: '', //字符串类型;会话类型,取值范围如下:
//chat:单聊会话
//groupChat:群聊会话
//chatRoom:聊天室会话
latestMessage: {} //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 对象;消息体(消息包含的内容),,详情参考附录:消息体内容
}
{
type: '', //字符串类型;消息体的类型,取值范围如下:
//text:文本类型
//image:图片类型
//video:视频类型
//location:位置类型
//voice:语音类型
//file:文件类型
//cmd:命令类型
...: ... //消息体除type外的其它内容,详情参考附录:消息体-文本、图片、视频、位置、语音、文件、命令
}
{
type: 'text',
text: '' //字符串类型;文本内容
}
{
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: //数字类型;缩略图文件的大小, 以字节为单位
}
{
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:准备下载
}
{
type: 'location',
address: '', //字符串类型;地址信息
latitude: , //数字类型;纬度
longitude: //数字类型;经度
}
{
type: 'voice',
duration: '', //数字类型;语音时长, 秒为单位
displayName: '', //字符串类型;附件的显示名
localPath: '', //字符串类型;附件的本地路径
remotePath: '', //字符串类型;附件在服务器上的路径
secretKey: '', //字符串类型;附件的密钥, 下载附件时需要密匙做校验
fileLength: , //数字类型;附件的大小, 以字节为单位
downloadStatus: '' //字符串类型;附件的下载状态,取值范围如下:
//downloading:正在下载
//successed:下载成功
//failed:下载失败
//pending:准备下载
}
{
type: 'file',
displayName: '', //字符串类型;附件的显示名
localPath: '', //字符串类型;附件的本地路径
remotePath: '', //字符串类型;附件在服务器上的路径
secretKey: '', //字符串类型;附件的密钥, 下载附件时需要密匙做校验
fileLength: , //数字类型;附件的大小, 以字节为单位
downloadStatus: '' //字符串类型;附件的下载状态,取值范围如下:
//downloading:正在下载
//successed:下载成功
//failed:下载失败
//pending:准备下载
}
{
type: 'cmd',
action: '', //字符串类型;命令内容
}
为帮助用户更好更快的使用插件,论坛维护了一个示例,示例中包含示例代码、知识点讲解、注意事项等,供您参考。