UIEaseChat

来自于:开发者立即使用

注册、登录、退出、监听

带 UI 的聊天对话页面

创建群组、添加/删除好友、获取好友列表

消息、会话、聊天

推送通知

附录

概述

关于环信

环信是北京易掌云峰科技有限公司旗下一家企业级服务软件提供商,环信成立于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 文件,配置方法如下:

  • 名称:UIEaseChat
  • 参数:appKey、ios_apnsCertName
  • 配置示例:
  <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="" />
  </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 时生效

在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>

字段描述:

  1. android_api_key:android版本的apiKey
  2. ios_api_key:Ios版本的apiKey

iOS 平台推送通知功能详解

本文主要介绍了使用环信 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,与 APICloud 平台上的包名是同一个东西,在 APICloud 平台上应用的概览里可以查看。

  1. 登录苹果开发者中心申请推送证书,本过程操作详情参考配置环信推送证书

  2. 将上一步生成的 p12 证书上传到环信:登录环信管理后台,找到要上传证书的Appkey,点击进入详情。选择“推送证书”,然后选择“iOS”,为证书起名,并记住名称,并配置在config.xml文件中(详情参考上文config 文件配置方法)。选择上传证书,将上一步中生成的P12文件上传,并设置导出时设置的密码。选择证书类型,此处是“开发环境”(如果之前用的是production,则此处应该选择生产)。填写应用包名,应为bundle id,点击上传,完成上传证书操作。本过程操作详情参考上传环信推送证书

  3. 将 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 8.0

重要提示:

  • 本模块可与官方发布的 easeChat 模块同时使用。两者注册、登录相关的接口功能一致,实现的效果相同,如:调动 easeChat 模块的登录接口 login 后,可直接调用本模块的 “带 UI 的聊天对话页面” 类接口,无需再调用 UIEaseChat.login 接口登录。因为 easeChat 和 UIEaseChat 模块都是封装的环信的移动端开放 SDK,App 启动时,SDK内部会初始化一个单例对象。若已用 easeChat 模块登录后,则 UIEaseChat 模块可直接使用登陆后的对象。

  • android的聊天界面中集成了发送视频的功能,根据环信服务器的限制,发送视频的大小不能超过10M;

  • 由于android不支持收到来电的监听(addCallEventListener),所以在传递头像的问题上是由发起方传递过来的,建议用widget,如果要用fs,请确保android本地图片存在。

模块接口

easeRegister

easeRegister({params},callback(ret, err))

params

username:

  • 类型:字符串
  • 描述:用户名

password:

  • 类型:字符串
  • 描述:密码

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 描述:注册结果
  • 内部字段:
{
    status: true           //布尔类型;是否注册成功,true|false
}

err:

  • 类型:JSON 对象
  • 描述:注册结果
  • 内部字段:
{
    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

登录接口

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 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))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    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

退出登录

退出登录分两种类型:主动退出登录和被动退出登录。

  • 主动退出登录:调用模块的退出接口;
  • 被动退出登录:1. 正在登录的账号在另一台设备上登录;2. 正在登录的账号被从服务器端删除。可通过 addAccountListener 接口监听。

在被动退出时模块内部处理,不需要调用本接口。

logout(callback(ret, err))

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true    //布尔类型;是否成功退出登录,true|false
}

err:

  • 类型:JSON 对象
  • 描述:退出登录失败结果
  • 内部字段:
{
    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 及更高版本

addConnectionListener

连接服务器的状态变化事件的监听

有以下几种情况, 会引起该方法的调用:

    1. 登录成功后, 手机无法上网时, 会调用该回调
    1. 登录成功后, 网络状态变化时, 会调用该回调

当掉线时,SDK 会自动重连,只需要监听重连相关的回调,无需进行任何操作。

addConnectionListener(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    state: 'connected'    //字符串类型;网络连接状态,取值范围如下:
                          //connected:已连接
                          //disconnected:未连接
}

示例代码

var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.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 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

账号异常事件的监听

addAccountListener(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    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

设置音视频通话的监听

可在本监听的回调函数内设置音视频通话的用户头像

addCallEventListener({params},callback(ret))

params

name:

  • 类型:字符串
  • 描述:监听事件名字
  • 取值范围:
    • callDidReceive:收到来电 (android不支持,android会在收到来电后自动弹出通话界面,所以不需要添加此监听)
    • didRecvInvite:被邀请加入会议(群聊)

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    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

设置音视频通话状态的监听

addCallStateListener(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
   state:''          //通话状态;取值如下
                         //connected:双方已经建立连接文字提示(双方已经建立连接但是还没有接听)
                         //network_unstable:网络不稳定
                         //network_normal:网络恢复正常
                         //network_disconnected:网络中断     
}

示例代码

var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.addCallStateListener(function(ret){
   console.log(JSON.stringify(ret)); 
});

可用性

iOS系统,Android系统

可提供的 1.1.8 及更高版本

addCallEndListener

添加单聊语音和视频通话结束监听

addCallEndListener(callback(ret))

callback(ret)

  • 类型:JSON 对象
  • 内部字段:
{
    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 及更高版本

addRightButtonListener

添加聊天页面右边按钮监听

addRightButtonListener(callback(ret))

callback(ret)

  • 类型:JSON 对象
  • 内部字段:
{
    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

添加聊天页面监听

addChatListener(callback(ret))

callback(ret)

  • 类型:JSON 对象
  • 内部字段:
{
    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 及更高版本

groupInvite

打开群聊邀请页面,用户接受邀请后模块自动跳转到群聊界面

可在群聊邀请的监听接口 addCallEventListener 回调函数内调用此接口

android不支持此接口,收到来电后自动弹出通话界面

groupInvite({params},callback(ret))

params

type:

  • 类型:字符串
  • 描述:(可选项)群聊类型
  • 默认:voice
  • 取值范围:
    • voice:语音
    • video:视频

confId:

  • 类型:字符串
  • 描述:(可选项)群聊id

creater:

  • 类型:字符串
  • 描述:群聊创建者用户id

groupId:

  • 类型:字符串
  • 描述:(可选项)由群聊打开的会议时群聊的id,不传会议记录无法在群聊记录显示。非群聊页面打开的会议,可忽略本参数

createrNickname:

  • 类型:字符串
  • 描述:(可选项)群聊创建者昵称,若不传或传空则显示creater(用户id)

userList:

  • 类型:数组
  • 描述:群聊成员username组成的数组,如:['huanxinUser1','huanxinUser2']

bg:

  • 类型:字符串
  • 描述:(可选项)音视频通话界面背景,支持rgb、rgba、#、img(要求本地路径,如:widget://、fs://)
  • 默认:'rgb(47,79,79)'

avatar:

  • 类型:JSON 对象
  • 描述:头像信息,以username为key,头像图片地址(要求本地路径:widget://、fs://)为value的JSON对象
  • 内部字段:
{
   'username':'avatarpath',
   'username':'avatarpath
}

callback(ret)

  • 类型:JSON 对象
  • 内部字段:
{
    status: ''     //布尔类型;用户是否接受邀请
}

示例代码

var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.groupInvite({
    chatType: 'video',
    userList:['huanxinUser1','huanxinUser2']
},function(ret){
  if(!ret.status){
     api.alert('用户拒绝');
  }
});

可用性

iOS系统

可提供的 1.0.0 及更高版本

groupChat

创建群聊并打开群聊界面,同时添加邀请群聊成员

groupChat({params})

params

type:

  • 类型:字符串
  • 描述:(可选项)群聊类型
  • 默认:voice
  • 取值范围:
    • voice:语音
    • video:视频

userList:

  • 类型:数组
  • 描述:群聊成员username组成的数组,如:['huanxinUser2','huanxinUser3']

bg:

  • 类型:字符串
  • 描述:(可选项)音视频通话界面背景,支持rgb、rgba、#、img(要求本地路径,如:widget://、fs://)
  • 默认:'rgb(47,79,79)'

avatar:

  • 类型:JSON 对象
  • 描述:头像信息,以username为key,头像图片地址(要求本地路径:widget://、fs://)为value的JSON对象
  • 内部字段:
{
   'username':'avatarpath',
   'username':'avatarpath
}

createrNickname:

  • 类型:字符串
  • 描述:(可选项)群聊创建者昵称,若不传或传空则显示creater(用户id)

示例代码

var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.groupChat({
    chatType: 'video',
    userList:['huanxinUser1','huanxinUser2']
});

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

chatInvite

打开群聊邀请页面,用户接受邀请后模块自动跳转到音视频聊天界面

可在单聊邀请的监听接口 addCallEventListener 回调函数内调用此接口

请在监听到来电请求后调用此接口,否则无效

chatInvite({params},callback(ret))

android不支持此接口,收到来电后自动弹出通话界面

params

type:

  • 类型:字符串
  • 描述:(可选项)群聊类型
  • 默认:voice
  • 取值范围:
    • voice:语音
    • video:视频

username:

  • 类型:字符串
  • 描述:邀请者的用户id

nickname:

  • 类型:字符串
  • 描述:(可选项)邀请者的用户昵称,若不传或传空则显示username(用户id)

bg:

  • 类型:字符串
  • 描述:(可选项)音视频通话界面背景,支持rgb、rgba、#、img(要求本地路径,如:widget://、fs://)
  • 默认:'rgb(47,79,79)'

avatar:

  • 类型:字符串
  • 描述:(可选项)头像图片地址,支持widget://、fs://
  • 默认:默认图标

callback(ret)

  • 类型:JSON 对象
  • 内部字段:
{
    status: ''     //布尔类型;用户是否接受邀请
}

示例代码

var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.chatInvite({
    chatType: 'video',
    username:'huanxinUser1'
},function(ret){
  if(!ret.status){
     api.alert('用户拒绝');
  }
});

可用性

iOS系统

可提供的 1.0.0 及更高版本

makeCall

发起音视频单聊

makeCall({params})

params

username:

  • 类型:字符串
  • 描述:会话对方的用户id

nickname:

  • 类型:JSON对象
  • 描述:(可选项)发起者和被邀请者的昵称
  • 内部字段:
{
   maker: '',    //(可选项)字符串类型;发起者昵称,若不传或传空则显示用户id
   invitee:''    //(可选项)字符串类型;被邀请者昵称,若不传或传空则显示用户id
}

type:

  • 类型:字符串
  • 描述:(可选项)群聊类型
  • 默认:voice
  • 取值范围:
    • voice:语音
    • video:视频

avatar:

  • 类型:JSON 对象
  • 描述:头像样式配置
  • 内部字段:
{
    local:'',       //(可选项)字符串类型;通话本地的用户头像地址,(支持fs://,widget://)(此参数ios忽略)
    remote:''       //(可选项)字符串类型;通对方的用户头像地址,(支持 fs://,widget://)

}

bg:

  • 类型:字符串
  • 描述:(可选项)音视频通话界面背景,支持rgb、rgba、#、img(要求本地路径,如:widget://、fs://)
  • 默认:'rgb(47,79,79)'(此参数ios忽略,ios的对方背景值需要从chatInvite接口的bg中获取)

示例代码

var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.makeCall({
    conversationId: '123',
    type: 'voice',
    avatar: {
       remote: '',
       local:''
    },
    bg:''
});

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

setHandsFreeEnable

设置语音/视频通话界面免提按钮是否可用

setHandsFreeEnable({params})

params

enable:

  • 类型:布尔类型
  • 描述:(可选项)免提按钮是否可用
  • 默认值:true

示例代码

var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.setHandsFreeEnable({
    enable: true
});

可用性

iOS系统,Android系统

可提供的 1.1.9 及更高版本

pauseCall

暂停音视频单聊

pauseCall()

示例代码

var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.pauseCall({);

可用性

iOS系统,Android系统

可提供的 1.1.6 及更高版本

resumeCall

恢复音视频通话

resumeCall()

示例代码

var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.resumeCall();

可用性

iOS系统,Android系统

可提供的 1.1.6 及更高版本

closeCall

挂断音视频通话

closeCall({params})

params

chatType:

  • 类型:字符串
  • 描述:(可选项)发送回执消息的会话类型
  • 默认:chat
  • 取值范围:
    • chat:单聊会话
    • groupChat:群聊会话

示例代码

var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.closeCall({
    chatType: 'chat',
});

可用性

iOS系统,Android系统

可提供的 1.1.6 及更高版本

chat

根据会话 ID 和类型创建并打开聊天页面

chat({params})

params

conversationId:

  • 类型:字符串
  • 描述:会话对方的用户名. 如果是群聊, 则是群组的id

chatType:

  • 类型:字符串
  • 描述:(可选项)发送回执消息的会话类型
  • 默认:chat
  • 取值范围:
    • chat:单聊会话
    • groupChat:群聊会话
    • chatRoom:聊天室会话

callishidden:

  • 类型:布尔类型
  • 描述:是否隐藏视频和语音通话按钮
  • 默认:false

hideVideo:

  • 类型:布尔类型
  • 描述:是否隐藏聊天页面中发送视频文件的按钮,(由于ios上没有此功能,为了和ios保持统一,增加此参数),(ios不支持)
  • 默认值:false

navigationBar:

  • 类型:JSON 对象
  • 描述:导航条样式配置
  • 内部字段:
{
    title: 'APICloud',        //字符串类型;聊天页面标题;默认: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:

  • 类型:JSON 对象
  • 描述:头像样式配置
  • 注意:android上local和remote字段只是用来显示语音和视频聊天时的头像显示,聊天页面的头像显示,android上读取的是avatarInfo字段
  • 内部字段:
{
    size: 40,       //数字类型;头像的大小;默认:40
    corner: 20,     //数字类型;头像圆角;默认:20
    local:'',       //(可选项)字符串类型;单聊时用户头像地址,(支持fs://,widget://)
    remote:''       //(可选项)字符串类型;单聊时对方的用户头像地址,(支持fs://,widget://)

}

text:

  • 类型:JSON 对象
  • 描述:消息样式配置
  • 内部字段:
{
    size: 15,      //数字类型;消息文本的大小;默认:15
    color: ''      //字符串类型;消息文本的颜色;默认:黑色
}

location:

  • 类型:JSON 对象
  • 描述:位置消息样式配置
  • 内部字段:
{
    size: 12,      //数字类型;位置消息文本的大小;默认:12
    color: ''      //字符串类型;位置消息文本的颜色;默认:#fff
}

callbg:

  • 类型:字符串
  • 描述:(可选项)音视频通话界面背景,支持rgb、rgba、#、img(要求本地路径,如:widget://、fs://)
  • 默认:'rgb(47,79,79)'

avatarInfo:

  • 类型:JSON 对象
  • 描述:(可选项)群聊时,各成员头像信息,以username为key,头像图片地址(要求本地路径:widget://、fs://)为value的JSON对象,单聊时忽略本参数
  • 注意:此字段在android上也用来显示聊天页面的头像显示。不只是在群聊时的头像显示,单聊时头像显示也用此字段;
  • 内部字段:
{
   'username':'avatarpath',
   'username':'avatarpath
}

nickname:

  • 类型:JSON 对象
  • 描述:(可选项)各成员昵称信息,以username为key,昵称为value的JSON对象
  • 内部字段:
{
   'username':'nickname',
   'username':'nickname'
}

userList:

  • 类型:数组
  • 描述:(可选项)群聊时群组成员username组成的数组,如:['huanxinUser2','huanxinUser3']。单聊时忽略本参数。

示例代码

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: 'APICloud',      
      titleColor: '#fff',    
      bgColor: '#d6d6d6',     
      backColor: '#fff',
      locationTitleColor:'#fff', 
      locationBackColor: '#fff'  
   }
});

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

closeConversation

关闭会话页面

closeConversation()

示例代码

var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.closeConversation();

可用性

iOS、Android系统

可提供的1.1.0及更高版本

addRecordButtonListener

聊天页面底部录音按钮监听

addRecordButtonListener(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    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

聊天页面内头像点击事件监听

addAvatarListener(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    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

打开聊天列表页面

chatList({params},callback(ret,err))

params

navigationBar:

  • 类型:JSON 对象
  • 描述:导航条样式配置
  • 内部字段:
{
    title: 'APICloud',      //字符串类型;聊天页面标题;默认:40
    titleColor: '#fff',     //字符串类型;标题文字颜色;默认:#fff
    bgColor: '#d6d6d6',     //字符串类型;导航条背景色;默认:#d1d1d1
    backColor: '#fff'       //字符串类型;导航条返回按钮色;默认:#fff
}

callbg:

  • 类型:字符串
  • 描述:(可选项)音视频通话界面背景,支持rgb、rgba、#、img(要求本地路径,如:widget://、fs://)
  • 默认:'rgb(47,79,79)'

avatar:

  • 类型:JSON 对象
  • 描述:头像信息,以username为key,头像图片地址(支持:widget://、fs://)为value的JSON对象
  • 内部字段:
{
   'username':'avatarpath',
   'username':'avatarpath
}

nickname:

  • 类型:JSON 对象
  • 描述:(可选项)各联系人昵称信息,以username为key,昵称为value的JSON对象
  • 内部字段:
{
   'username':'nickname',
   'username':'nickname'
}

callishidden:

  • 类型:布尔类型
  • 描述:是否隐藏视频和语音通话按钮
  • 默认:false

hideVideo:

  • 类型:布尔类型
  • 描述:是否隐藏聊天页面中发送视频文件的按钮,(由于ios上没有此功能,为了和ios保持统一,增加此参数),(ios不支持)
  • 默认值:false

示例代码

var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.chatList({
    navigationBar:{
      title: 'APICloud',      
      titleColor: '#fff',    
      bgColor: '#d6d6d6',     
      backColor: '#fff'       
   }
});

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

refreshChatList

刷新聊天列表

refreshChatList(callback(ret,err))

示例代码

var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.refreshChatList();

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

contactsList

打开联系人列表页面

contactsList({params},callback(ret,err))

params

navigationBar:

  • 类型:JSON 对象
  • 描述:导航条样式配置
  • 内部字段:
{
    title: 'APICloud',      //字符串类型;聊天页面标题;默认:40
    titleColor: '#fff',     //字符串类型;标题文字颜色;默认:#fff
    bgColor: '#d6d6d6',     //字符串类型;导航条背景色;默认:#d1d1d1
    backColor: '#fff'       //字符串类型;导航条返回按钮色;默认:#fff
}

callbg:

  • 类型:字符串
  • 描述:(可选项)音视频通话界面背景,支持rgb、rgba、#、img(要求本地路径,如:widget://、fs://)
  • 默认:'rgb(47,79,79)'

avatar:

  • 类型:JSON 对象
  • 描述:头像信息,以username为key,头像图片地址(要求本地路径:widget://、fs://)为value的JSON对象
  • 内部字段:
{
   'username':'avatarpath',
   'username':'avatarpath
}

nickname:

  • 类型:JSON 对象
  • 描述:(可选项)各联系人昵称信息,以username为key,昵称为value的JSON对象
  • 内部字段:
{
   'username':'nickname',
   'username':'nickname'
}

callishidden:

  • 类型:布尔类型
  • 描述:是否隐藏视频和语音通话按钮
  • 默认:false

hideVideo:

  • 类型:布尔类型
  • 描述:是否隐藏聊天页面中发送视频文件的按钮,(由于ios上没有此功能,为了和ios保持统一,增加此参数),(ios不支持)
  • 默认值:false

示例代码

var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.contactsList({
    navigationBar:{
      title: 'APICloud',      
      titleColor: '#fff',    
      bgColor: '#d6d6d6',     
      backColor: '#fff'       
   }
});

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

refreshContactsList

刷新联系人列表

refreshContactsList(callback(ret,err))

示例代码

var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.refreshContactsList();

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

configureChat

环信相关配置

configureChat({params})

params

navigationBar:

  • 类型:JSON 对象
  • 描述:配置聊天页面导(优先级低于调用chat接口时配置,都不设置采用默认值)
  • 内部字段:
{
    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:

  • 类型:布尔类型
  • 描述:app处于后台时,有新消息时是否在通知栏提醒(注:此参数不影响第三方的其他推送)(仅在android端有效)
  • 默认值:true

msgVoice

  • 类型:布尔类型
  • 描述:(可选项) 有新消息后,是否有声音提醒(仅在android端有效)
  • 默认值:true

msgVibrate

  • 类型:布尔类型
  • 描述:(可选项) 有新消息后,是否有震动提醒(仅在android端有效)
  • 默认值:true

rightButtonInfo:

  • 类型:JSON 对象
  • 描述:(可选项)会话页面右边按钮相关设置
  • 注意:由于平台机制不同,在android端在本按钮点击事件里打开新页面时必须先关闭当前聊天页面,否则新页面无法正常显示
  • 内部字段:
{
   style:0,                 //数字类型;按钮样式,0为普通按钮,1为点击弹出下拉菜单;默认:0
   bgImage:'',              //字符类型;按钮图片
   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不支持)
   }
}

callHint:

  • 类型:JSON 对象
  • 描述:(可选项)音视频通话状态提示文字,不填写此参数将没有提示
  • 内部字段:
{
   connected :'',                 //字符类型;双方已经建立连接文字提示(双方已经建立连接但是还没有接听)
   network_unstable:'',           //字符类型;网络不稳定
   network_normal:'',             //字符类型;网络恢复正常
   network_disconnected :'',      //字符类型;网络中断
}

hideLocation:

  • 类型:布尔类型
  • 描述:(可选项)是否隐藏聊天页面面板上位置发送按钮
  • 默认值:false

hanguptime:

  • 类型:数字
  • 描述:(可选项)自动挂断等待时长
  • 默认:50(秒)

netDisConnectedAutoExit:

  • 类型:布尔类型
  • 描述:(可选项) 在单聊的语音视频通话中,网络中断后是否自动挂断(ios不支持)
  • 注:此参数用来控制closeCall接口后,对方没有挂断的情况,如果设置为true,就不需要在判断网络情况后退出聊天,模块内部做判断
  • 默认值:false

示例代码

var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.configureChat();

可用性

iOS系统,Android系统

可提供的 1.0.7 及更高版本

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 UIEaseChat = api.require('UIEaseChat');
UIEaseChat.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 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 及更高版本

getGroupInfo

获取制定 id 的群组信息 ,需要owner/admin权限

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 及更高版本

getGroupInfo

获取制定 id 的群组信息 ,需要owner/admin权限

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 UIEaseChat = api.require('UIEaseChat');
UIEaseChat.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 UIEaseChat = api.require('UIEaseChat');
UIEaseChat.addContactListener(function(ret) {
    api.alert(ret);
});

可用性

iOS系统,Android系统

可提供的1.1.3及更高版本

setAutoAcceptFriendInvitation

设置是否自动同意好友申请

setAutoAcceptFriendInvitation({params})

params

isAutoAcceptFriendInvitation:

  • 类型:布尔
  • 描述:是否自动同意好友申请

示例代码

var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.setAutoAcceptFriendInvitation({
    isAutoAcceptFriendInvitation:true
});

可用性

iOS系统,Android系统

可提供的1.1.3及更高版本

approveFriendRequest

同意加好友的申请

approveFriendRequest({params},callback(ret, err))

params

name:

  • 类型:字符串
  • 描述:申请者

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true ,          //布尔类型;是否同意成功,true|false
    name: ''                //字符串类型;用户名
}

err:

  • 类型:JSON 对象
  • 描述:同意失败后返回结果
  • 内部字段:
{
    code: 1,           //数字类型;错误码
    msg: ''            //字符串类型;错误信息
}

示例代码

var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.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 UIEaseChat = api.require('UIEaseChat');
UIEaseChat.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 UIEaseChat = api.require('UIEaseChat');
UIEaseChat.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

获取好友列表(仅支持ios)

getContacts({params},callback(ret))

params

original:

  • 类型:字符串
  • 描述:(可选项)数据源(仅ios有效)
  • 默认:server
  • 取值范围:
    • server:从服务器获取所有的好友
    • local:获取本地存储的所有好友

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    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 及更高版本

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 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

私有群里,如果开放了群成员邀请,群成员邀请调用该接口邀请成员

inviteUser({params},callback(ret))

params

names:

  • 类型:数组类型
  • 描述:要邀请的用户名列表

groupId:

  • 类型:字符串
  • 描述:群组id

message:

  • 类型:字符串
  • 描述:(可选项)欢迎信息

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true ,          //布尔类型;是否获取成功,true|false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    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

把单人或多人移出群组

removeMembersFromGroup({params},callback(ret))

params

names:

  • 类型:数组类型
  • 描述:要移除的用户名列表(注:android不支持一次删除多个人,即如果数组的长度大于1,只会删除第一个)

groupId:

  • 类型:字符串
  • 描述:群组id

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true ,          //布尔类型;是否获取成功,true|false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    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

修改群组群名称

changeGroupSubject({params},callback(ret))

params

groupName:

  • 类型:字符串
  • 描述:要修改的名称

groupId:

  • 类型:字符串
  • 描述:群组id

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true ,          //布尔类型;是否获取成功,true|false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    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

用户主动退出群组

leaveGroup({params},callback(ret))

params

groupId:

  • 类型:字符串
  • 描述:群组id

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true ,          //布尔类型;是否获取成功,true|false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    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

加入一个公开群组

joinPublicGroup({params},callback(ret))

params

groupId:

  • 类型:字符串
  • 描述:群组id

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true ,          //布尔类型;是否获取成功,true|false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    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

申请加入一个需批准的公开群组

requestToJoinPublicGroup({params},callback(ret))

params

groupId:

  • 类型:字符串
  • 描述:群组id

aMessage:

  • 类型:字符串
  • 描述:(可选项)请求加入的信息

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true ,          //布尔类型;是否获取成功,true|false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    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

批准入群申请

approveJoinGroupRequest({params},callback(ret))

params

groupId:

  • 类型:字符串
  • 描述:所申请的群组ID

username:

  • 类型:字符串
  • 描述:申请人

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true ,          //布尔类型;是否获取成功,true|false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    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

拒绝入群申请

declineJoinGroupRequest({params},callback(ret))

params

groupId:

  • 类型:字符串
  • 描述:被拒绝的群组ID

username:

  • 类型:字符串
  • 描述:申请人

reason:

  • 类型:字符串
  • 描述:拒绝理由

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true ,          //布尔类型;是否获取成功,true|false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    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

接受入群邀请

acceptInvitationFromGroup({params},callback(ret))

params

groupId:

  • 类型:字符串
  • 描述:接受的群组ID

username:

  • 类型:字符串
  • 描述:邀请者

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true ,          //布尔类型;是否获取成功,true|false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    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

拒绝入群邀请

declineGroupInvitation({params},callback(ret))

params

groupId:

  • 类型:字符串
  • 描述:被拒绝的群组ID

username:

  • 类型:字符串
  • 描述:邀请人

reason:

  • 类型:字符串
  • 描述:拒绝理由

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true ,          //布尔类型;是否获取成功,true|false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    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

群组状态监听

addGroupListener(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    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及更高版本

setAutoAcceptGroupInvitation

设置用户是否自动同意群邀请(需要在createGroup接口的IsInviteNeedConfirm设置为true的情况下本接口才会生效)

setAutoAcceptGroupInvitation({params},callback(ret))

params

isAutoAcceptGroupInvitation:

  • 类型:布尔
  • 描述:用户是否自动同意群邀请
  • 默认:true

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true ,          //布尔类型;是否设置成功,true|false
}

示例代码

var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.setAutoAcceptGroupInvitation({
  isAutoAcceptGroupInvitation:true
},function(ret) {
    api.alert(ret);
});

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

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 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

获取公开群组

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 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 及更高版本

muteMembers

将一组成员禁言,需要Owner / Admin权限

muteMembers({params},callback(ret))

params

muteMembers:

  • 类型:数组
  • 描述:要禁言的成员列表

muteMilliseconds:

  • 类型:数字
  • 描述:禁言时长,单位秒(android注意:目前muteMilliseconds参数不起作用,暂时只支持永久禁言和解除禁言两种操作, muteMilliseconds建议输入1230246060)
  • 默认:86400(一天)

groupId:

  • 类型:字符
  • 描述:群组ID

callback(ret,err)

{
    status: true ,          //布尔类型;是否禁言成功,true|false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    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 及更高版本

unmuteMembers

将一组成员解除禁言,需要Owner / Admin权限

unmuteMembers({params},callback(ret))

params

muteMembers:

  • 类型:数组
  • 描述:要解除禁言的成员列表

groupId:

  • 类型:字符
  • 描述:群组ID

callback(ret,err)

{
    status: true ,          //布尔类型;是否解除禁言成功,true|false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    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 及更高版本

getConversation

新建(仅支持ios)/获取一个会话

getConversation({params},callback(ret))

params

conversationId:

  • 类型:字符串
  • 描述:(可选项)会话的id,若创建时可不传此参数

type:

  • 类型:字符串
  • 描述:(可选项)会话类型(仅支持ios)
  • 默认:chat
  • 取值范围:
    • chat:单聊会话
    • groupChat:群聊会话
    • chatRoom:聊天室会话

ifCreate:

  • 类型:布尔
  • 描述:(可选项) 如果会话不存在是否创建会话(仅支持ios)
  • 默认:true

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    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 及更高版本

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('UIEaseChat');
easeChat.loadMessageFromDB({
    conversationId: '',
    type: 'chat',
    startMsgId:''
},function(ret) {
    if(ret.status)
    api.alert({ msg:JSON.stringify(ret)});
});

可用性

android系统

可提供的 1.0.0 及更高版本

setConversationToTop

设置会话是否置顶显示,若为true,chatList接口打开的会话页面里则置顶显示

setConversationToTop({params},callback(ret))

params

conversationId:

  • 类型:字符串
  • 描述:(必选项)会话的id

type:

  • 类型:字符串
  • 描述:(可选项)会话类型
  • 默认:chat
  • 取值范围:
    • chat:单聊会话
    • groupChat:群聊会话
    • chatRoom:聊天室会话

isTop:

  • 类型:布尔类型
  • 描述:(可选项)会话是否置顶显示
  • 默认值:true

bg:

  • 类型:字符串
  • 描述:(可选项) 置顶会话列表的背景颜色;支持#、rgba、rgb;
  • 默认值:#FF0000

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true ,          //布尔类型;是否设置置顶成功,true|false
}

示例代码

var easeChat = api.require('UIEaseChat');
easeChat.setConversationToTop({
    conversationId: '',
    isTop: true
},function(ret) {

});

可用性

ios,android系统

可提供的 1.0.7 及更高版本

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 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

将会话所有消息置为已读

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 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

从服务器获取指定会话的历史消息;此接口需要开通环信增值服务,未开通不会返回数据

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('UIEaseChat');
easeChat.fetchHistoryMessagesFromServer({
    conversationId: '',
    type: 'chat',
    startMsgId:''
},function(ret) {
    if(ret.status)
    api.alert({ msg:JSON.stringify(ret)});
});

可用性

iOS系统,Android系统

可提供的 1.1.1 及更高版本

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.1.9 及更高版本

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 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

删除一组会话

deleteConversations({params},callback(ret,err))

params

conversationIds:

  • 类型:数组
  • 描述:要删除的会话的id 组成的数组

isDeleteMessages:

  • 类型:布尔
  • 描述:(可选项) 是否删除会话中的消息
  • 默认:true

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true           //布尔类型;是否删除成功,true|false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    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 及更高版本

getAllConversations

获取所有会话,如果内存中不存在会从DB中加载

getAllConversations(callback(ret,err))

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    conversations: []       //数组类型;返回的会话信息组成的数组,会话信息详细内容参考附件:会话信息
}

示例代码

var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.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 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 及更高版本

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 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

发送文本消息

sendText({params},callback(ret,err))

params

conversationId:

  • 类型:字符串
  • 描述:要发送消息的会话的 id

chatType:

  • 类型:字符串
  • 描述:(可选项)要发送消息的会话类型
  • 默认:chat
  • 取值范围:
    • chat:单聊会话
    • groupChat:群聊会话
    • chatRoom:聊天室会话

text:

  • 类型:字符串
  • 描述:发送的消息

from:

  • 类型:字符串
  • 描述:(可选项)发送方
  • 默认:当前登录账号

to:

  • 类型:字符串
  • 描述:接收方

ext:

  • 类型:JSON 对象
  • 描述:扩展信息,自定义推送扩展,如:{"em_apns_ext":{"extern":"自定义推送扩展"}}

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true,          //布尔类型;是否发送成功,true|false
    message: {}            //JSON 对象;发送的消息,详情参考附录:消息内容;注:此接口返回的消息id是临时id,并不是服务器上的id
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    code:   ,         //数字类型;错误码
    msg: ''           //字符串类型;错误信息
}

示例代码

var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.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://)(android只支持fs)

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 UIEaseChat = api.require('UIEaseChat');
UIEaseChat.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 UIEaseChat = api.require('UIEaseChat');
UIEaseChat.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://)(android只支持fs)

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 UIEaseChat = api.require('UIEaseChat');
UIEaseChat.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://)(android只支持fs)

displayName:

  • 类型:字符串
  • 描述:附件显示名(不包含路径)

length:

  • 类型:数字
  • 描述:视频时间长度(秒)

thumbPath:

  • 类型:字符串
  • 描述:视频预览图路径,要求本地路径(fs://、widget://)(android只支持fs)

from:

  • 类型:字符串
  • 描述:(可选项)发送方
  • 默认:当前登录账号

to:

  • 类型:字符串
  • 描述:接收方

ext:

  • 类型:JSON 对象
  • 描述:扩展信息

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true,          //布尔类型;是否发送成功,true|false
    message: {}            //JSON 对象;发送的消息,详情参考附录:消息内容;注:此接口返回的消息id是临时id,并不是服务器上的id
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    code:   ,         //数字类型;错误码
    msg: ''           //字符串类型;错误信息
}

示例代码

var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.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://)(android只支持fs)

displayName:

  • 类型:字符串
  • 描述:附件显示名(不包含路径)

from:

  • 类型:字符串
  • 描述:(可选项)发送方
  • 默认:当前登录账号

to:

  • 类型:字符串
  • 描述:接收方

ext:

  • 类型:JSON 对象
  • 描述:扩展信息

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true,          //布尔类型;是否发送成功,true|false
    message: {}            //JSON 对象;发送的消息,详情参考附录:消息内容;注:此接口返回的消息id是临时id,并不是服务器上的id
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    code:   ,         //数字类型;错误码
    msg: ''           //字符串类型;错误信息
}

示例代码

var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.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 UIEaseChat = api.require('UIEaseChat');
UIEaseChat.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 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 及更高版本

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 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

发送消息已读回执

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 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

添加消息相关事件监听

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 时本参数有值,消息组成的数组,消息详情参考附录:消息内容
    isPushMsg: false   //布尔类型;仅当 name 非 receive 时本参数有值。表示是否是远程推送而来的消息,本参数仅在iOS平台有效。
                       //当本参数为 true 时,message数据格式同本文概述部分讲述的api.addEventListener接口获取的value值
}

err:

  • 类型:JSON 对象
  • 描述:消息/消息附件状态发送改变时的错误信息,仅当 name 为msgChange 或 msgAttachmentChange 时本参数有值
  • 内部字段:
{
    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

移除消息相关事件监听

removeMessageListener({params})

params

name:

  • 类型:字符串
  • 描述:要移除的消息相关事件名称
  • 默认:receive
  • 取值范围:
    • receive:消息的监听
    • cmdReceive:cmd消息的监听
    • read:消息已阅读的监听
    • deliver:消息已送达的监听
    • msgChange:消息状态发生变化的监听
    • msgAttachmentChange:消息附件状态发生改变的监听
    • conversationListDidUpdate:会话列表发生变化的监听

示例代码

var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.addMessageListener({
    name: 'receive'
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setLocalNotification

开启关闭本地通知

开启本地通知后,app在后台运行时通过长连接收到消息时会弹出提示。此时用户点击提示后,iOS系统会启动app,开发者可在api.addEventListener接口获取消息内容,详情参考概述。

setLocalNotification({params})

params

enable:

  • 类型:字符串
  • 描述:(可选项)是否开启本地通知
  • 默认:true

title:

  • 类型:字符串
  • 描述:(可选项)本地推送提示语
  • 默认:您有一条新的消息

示例代码

var UIEaseChat = api.require('UIEaseChat');
UIEaseChat.setLocalNotification({
   enable: true,
   title: '您有一条新的消息'
});

可用性

iOS系统

可提供的 1.0.3及更高版本

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 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

设置推送昵称

setApnsNickname({params},callback(ret))

params

nickname:

  • 类型:字符串
  • 描述:推送消息显示的昵称

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 描述:注册结果
  • 内部字段:
{
    status: true           //布尔类型;是否设置成功,true|false
}

err:

  • 类型:JSON 对象
  • 描述:注册结果
  • 内部字段:
{
    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

设置群组忽略推送

ignoreGroupPush({params},callback(ret))

params

groupId:

  • 类型:字符串
  • 描述:群组id

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 描述:注册结果
  • 内部字段:
{
    status: true           //布尔类型;是否设置成功,true|false
}

err:

  • 类型:JSON 对象
  • 描述:注册结果
  • 内部字段:
{
    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

批量设置忽略推送的群组

ignoreGroupsPush({params},callback(ret))

params

groupIds:

  • 类型:数组
  • 描述:群组id组成的数组

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 描述:注册结果
  • 内部字段:
{
    status: true           //布尔类型;是否设置成功,true|false
}

err:

  • 类型:JSON 对象
  • 描述:注册结果
  • 内部字段:
{
    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及更高版本

getAllIgnoredGroupIds

获取忽略推送消息的群组id

getAllIgnoredGroupIds(callback(ret))

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 描述:注册结果
  • 内部字段:
{
    status: true           //布尔类型;是否获取成功,true|false
    ignoredGroupIds:[]     //数组类型;获取的群组id组成的数组
}

err:

  • 类型:JSON 对象
  • 描述:注册结果
  • 内部字段:
{
    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及更高版本

附录

会话信息

  • 类型: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: '',                //字符串类型;命令内容
}