easeChat

来自于:环信官方立即使用

注册、登录、退出、监听

easeRegister login isAutoLogin logout addConnectionListener addAutoLoginListener addAccountListener sendHMSPushTokenToServer

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

createGroup destroyGroup getGroupInfo addContact addContact addContactListener setAutoAcceptFriendInvitation approveFriendRequest declineFriendRequest deleteContact getContacts addMembersToGroup inviteUser removeMembersFromGroup changeGroupSubject leaveGroup joinPublicGroup requestToJoinPublicGroup approveJoinGroupRequest declineJoinGroupRequest acceptInvitationFromGroup declineGroupInvitation addGroupListener setAutoAcceptGroupInvitation getGroupsListFromServer getAllPublicGroups muteMembers unmuteMembers

消息、会话、聊天

getConversation deleteConversation deleteConversations getAllConversations loadMessageWithId lastReceivedMessage markMessageAsRead markAllMessagesAsRead sendText sendImage sendLocation sendVoice sendVideo sendFile sendCmd downloadMessageThumbnail downloadMessageAttachments sendMessageReadAck addMessageListener removeMessageListener loadMessageFromDB setConversationExt recallMessage

音视频通话、会议

setCallOptions startCall setLocalVideoView setRemoteVideoView setVideoView removeLocalVideoView removeRemoteVideoView answerIncomingCall endCall switchCameraPosition pauseVoice resumeVoice pauseVideo resumeVideo setSpeakerEnabled addCallListener removeCallListener starConferenceCall joinConference publishConference subscribeConference leaveConference destroyConference unsubscribeConference unpublishConference updateConferenceWithSwitchCamera updateConferenceWithVolume updateConferenceWithVideo updateConferenceMaxVideoKbps addConferenceListener removeConferenceListener

推送通知

setLocalNotification setPushOption setApnsNickname ignoreGroupPush ignoreGroupsPush getAllIgnoredGroupIds

附录

附录 会话信息 消息内容 消息体内容 消息体-文本 消息体-图片 消息体-视频 消息体-位置 消息体-语音 消息体-文件 消息体-命令

论坛示例

为帮助用户更好更快的使用模块,论坛维护了一个示例,示例中包含示例代码、知识点讲解、注意事项等,供您参考。

概述

关于环信

环信是北京易掌云峰科技有限公司旗下一家企业级服务软件提供商,环信成立于2013年4月,并于2016年荣膺“Gartner 2016 Cool Vendor”。产品有国内上线最早规模最大的即时通讯云平台——环信即时通讯云,移动端最佳实践的全媒体智能云客服平台—环信移动客服。截至2016年上半年,环信即时通讯云共服务了82149家App客户,环信移动客服共服务了29437家企业用户.

主要产品:

  1. 环信移动客服——全媒体智能云客服倡导者。
  2. 环信即时通讯云——国内最大的即时通讯云PaaS平台。

模块概览

本模块封装了环信即时通讯云的开放SDK。本模块封装的接口都是纯功能类接口,主要分三大类:

1,注册、登录、退出、监听

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

3,消息、会话、聊天

功能详情参考模块接口。

新手上路

1. 注册

2. 服务器端集成

3. 客户端集成(模块使用)

使用此模块之前必须先配置 config 文件,配置方法如下:

  • 名称:easeChat
  • 参数:appKey、ios_apnsCertName
  • 配置示例:
  1. <feature name="easeChat">
  2. <param name="appKey" value="1154170221178369#apicloud" />
  3. <param name="ios_apnsCertName" value="81qz3dBYB5q2nGji4IYrawr1" />
  4. <param name="enableDnsConfig" value="true" />
  5. <param name="chatPort" value= "6718"/>
  6. <param name="chatServer" value="im2.ssy.citics.com" />
  7. <param name="restServer" value="a1.ssy.citics.com:88" />
  8. <param name="dnsURL" value="" />
  9. <param name="miAppId" value="" />
  10. <param name="miAppKey" value="" />
  11. </feature>
  1. **enableDnsConfig**:(可选项)是否允许使用DNS,当使用了自己私有服务器请将此参数配置为false 默认为true
  2. **chatPort**: (可选项)IM服务器端口,enableDnsConfig false 时生效
  3. **chatServer**:(可选项)IM服务器地址,enableDnsConfig false 时生效
  4. **restServer**:(可选项)REST服务器地址,enableDnsConfig false 时生效
  5. **dnsURL**:(可选项)DNS URL 地址,enableDnsConfig true 时生效
  6. **miAppId**:(可选项) 小米推送的appid
  7. **miAppKey**:(可选项) 小米推送的appkey

在android平台配置如下

  1. <meta-data
  2. name="EASEMOB_APPKEY"
  3. value="1176170302115001#test" />

value:为appKey

环信为 IM 部分提供了 APNS 推送功。详情参考APNS离线推送

如何使用远程推送

集成推送功能流程如下文所示。此过程中涉及到的 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会将本次推送的内容通过事件监听回调的方式交给开发者。具体使用如下:

  1. api.addEventListener({
  2. name: 'noticeclicked'
  3. }, function(ret) {
  4. if (ret && ret.value) {
  5. var type = ret.type;//0APICloud收到的推送内容,1模块开发者自定义的
  6. var result = ret.value;//推送内容
  7. }
  8. })

value数据格式如下:

  1. {
  2. localNotification”:false,//是否是本地通知,若为true则下文数据格式同addMessageListener接口监听receive事件回调的数据格式
  3. "aps":{
  4. "alert":{
  5. "body":"您有一条新消息" // 消息内容
  6. },
  7. "badge":1, // 角标数
  8. "sound":"default" // 提示音
  9. },
  10. "e":"自定义推送扩展",//自定义推送扩展
  11. "f":"6001", // 消息发送方
  12. "t":"6006", // 消息接收方
  13. "m":"373360335316321408" // 消息id
  14. "g":"1421300621769" // 群组id(如果是单聊则没有该字段)
  15. }

如果 App 当前为活跃状态且未被系统冻结(按home键2分钟内app在后台运行状态),则您可通过在 addMessageListener 接口中监听 receive 事件捕获该消息,详情参考 addMessageListener 接口说明。此时若允许本地通知,则模块会弹出本地通知的提示框,用户点击该提示框,iOS系统会启动本App,同时api.addEventListener也会受到消息。

证书到期后,要更换新的推送证书,需要在环信管理后台将旧的删除,之后重新上传,上传时的命名要与旧证书的命名一致。一个appkey下可以传多个证书,这就可以实现夸App聊天,在不同App中初始化sdk的时候,指定不同的推送证书,每个证书对应当前App的bundle id,这样,用户在登录不同的App的时候就会绑定到不同的推送证书,从而实现夸App的聊天和推送。

注意:本模块 iOS 平台上最低适配系统版本为 iOS 9.0

android 平台集成推送详解

小米推送

  • config.xml文件中配置miAppId和miAppKey
  • 在APICloud后台添加mipush模块
  • 在环信后台上传小米推送所需的证书

华为推送

  • 在APICloud后台添加huaweiPush模块
  • 从此模块中获取华为的token,并调用sendHMSPushTokenToServer接口;
  • 在环信后台上传华为推送所需的证书

重要提示:

  • android从1.0.9版本开始,编译需要使用升级环境编译

Android 推送通道设置,不进行此设置android8.0以及以上系统可能收不到推送消息

  • 配置示例:
  1. <feature name="UIEaseChat">
  2. <param name="androidChannelId" value="11"/>
  3. <param name="androidChannel" value="appchannel"/>
  4. <param name="androidChannelDes" value="notification description"/>
  5. </feature>
  • 字段描述:

    androidChannelId:安卓8.0推送渠道配置,渠道id。后台通过此渠道id推送

    androidChannel:安卓8.0推送渠道配置,渠道名称。

    androidChannelDes:安卓8.0推送渠道配置,渠道描述。

模块接口

easeRegister

注册模式分两种,开放注册和授权注册。

  • 只有开放注册时,才可以客户端注册。开放注册是为了测试使用,正式环境中不推荐使用该方式注册环信账号。
  • 授权注册的流程应该是您服务器通过环信提供的 REST API 注册,之后保存到您的服务器或返回给客户端。

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

params

username:

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

password:

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

callback(ret, err)

ret:

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

err:

  • 类型:JSON 对象
  • 描述:结果
  • 内部字段:
  1. {
  2. code: 1, //数字类型;错误码
  3. msg: '' //字符串类型;错误信息
  4. }

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.easeRegister({
  3. username: '',
  4. password: ''
  5. },function(ret, err) {
  6. if (ret.status) {
  7. api.alert({ msg:'注册成功'});
  8. } else {
  9. api.alert({ msg:JSON.stringify(err)});
  10. }
  11. });

可用性

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 对象
  • 描述:登录结果
  • 内部字段:
  1. {
  2. status: true //布尔类型;是否登录成功,true|false
  3. }

err:

  • 类型:JSON 对象
  • 描述:登录结果
  • 内部字段:
  1. {
  2. code: 1, //数字类型;错误码
  3. msg: '' //字符串类型;错误信息
  4. }

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.login({
  3. username: '',
  4. password: '',
  5. autoLogin: true
  6. },function(ret, err) {
  7. if (ret.status) {
  8. api.alert({ msg:'登录成功'});
  9. } else {
  10. api.alert({ msg:JSON.stringify(err)});
  11. }
  12. });

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

isAutoLogin

是否设置了自动登录(仅支持ios)

isAutoLogin(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true //布尔类型;是否设置了自动登录,true|false
  3. }

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.isAutoLogin(function(ret, err) {
  3. if (ret.status) {
  4. alert('已开启自动登录');
  5. } else {
  6. alert('未开启自动登录');
  7. }
  8. });

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

logout

退出登录

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

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

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

logout(callback(ret, err))

callback(ret, err)

ret:

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

err:

  • 类型:JSON 对象
  • 描述:退出登录失败结果
  • 内部字段:
  1. {
  2. code: 1, //数字类型;错误码
  3. msg: '' //字符串类型;错误信息
  4. }

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.logout(function(ret, err) {
  3. if (ret.status) {
  4. api.alert({ msg:'登录成功'});
  5. } else {
  6. api.alert({ msg:JSON.stringify(err)});
  7. }
  8. });

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

addConnectionListener

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

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

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

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

addConnectionListener(callback(ret))

callback(ret)

ret:

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

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.addConnectionListener(function(ret) {
  3. alert(JSON.stringify(ret));
  4. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

addAutoLoginListener

自动登录完成时的回调事件监听(仅支持ios)

addAutoLoginListener(callback(ret, err))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. complete: true //布尔类型;自动登录是否完成,true|false
  3. }

err:

  • 类型:JSON 对象
  • 描述:自动登录失败结果
  • 内部字段:
  1. {
  2. code: 1, //数字类型;错误码
  3. msg: '' //字符串类型;错误信息
  4. }

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.addAutoLoginListener(function(ret) {
  3. if (ret.complete) {
  4. api.alert({ msg:'自动登录成功'});
  5. } else {
  6. api.alert({ msg:JSON.stringify(err)});
  7. }
  8. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

addAccountListener

账号异常事件的监听

addAccountListener(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. eventType: 'otherLogin' //字符串类型;监听的事件类型,取值范围如下:
  3. //otherLogin:当前登录账号在其它设备登录事件
  4. //remove:当前登录账号已经被从服务器端删除事件
  5. //forbid:服务被禁用事件(仅支持ios)
  6. }

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.addAccountListener(function(ret) {
  3. api.alert({ msg:ret.eventType});
  4. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

sendHMSPushTokenToServer

注册华为推送,上传token

sendHMSPushTokenToServer({params})

params

token:

  • 类型:字符串
  • 描述:华为token

appid:

  • 类型:字符串
  • 描述:华为appid

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.sendHMSPushTokenToServer({
  3. token: '',
  4. appid: ''
  5. });

可用性

Android系统

可提供的 1.0.9 及更高版本

createGroup

创建群组

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

params

name:

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

description:

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

message:

  • 类型:字符串
  • 描述:邀请消息

userCount:

  • 类型:数字
  • 描述:(可选项)群组容纳的人数,群组的最大成员数(3 - 2000)
  • 默认:200

invitees:

  • 类型:数组
  • 描述:群组成员(不包括创建者自己)
  • 示例:
  1. ['6001','6002','6003','6004']

style:

  • 类型:字符串
  • 描述:群组类型
  • 默认:openJoin
  • 取值范围:
    • openJoin:公开群组,用户可以自由加入
    • ownerInvite:私有群组,只允许Owner邀请用户加入
    • memberCanInvite:私有群组,Owner和群成员均可邀请用户加入
    • public:公开群组,Owner可以邀请用户加入; 非群成员用户发送入群申请,经Owner同意后才能入组

IsInviteNeedConfirm:

  • 类型:布尔
  • 描述:(可选项)邀请群成员时,是否需要发送邀请通知.若false,被邀请的人自动加入群组
  • 默认:false

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 描述:创建群返回结果
  • 内部字段:
  1. {
  2. status: true , //布尔类型;是否创建成功,true|false
  3. group: { //JSON对象;创建的群组信息
  4. groupId: '', //字符串类型;群组id
  5. subject: '', //字符串类型;群组的主题
  6. description: '', //字符串类型;群组的描述
  7. memberCount: , //数字类型;群组当前的成员数量
  8. setting: {
  9. style: '', //字符串类型;群组的类型
  10. maxUserCount: //数字类型;群组的最大成员数(3 - 2000,默认是200)
  11. },
  12. owner: '', //字符串类型;群组的所有者,拥有群的最高权限(只有一人)
  13. members: [], //数组类型;群组的成员列表
  14. blackList: [], //数组类型;群组的黑名单,需要owner权限才能查看,非owner返回undefine
  15. isPublic: , //布尔类型;此群是否为公开群
  16. isBlocked: , //布尔类型;是否屏蔽群消息
  17. isPushNotificationEnabled://布尔类型;此群组是否接收消息推送通知,(仅支持ios)
  18. }
  19. }

err:

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

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.createGroup({
  3. name:'APICloud',
  4. description: 'APICloud大牛群',
  5. message:'欢迎加入!',
  6. userCount:200,
  7. invitees:['6001','6002','6003','6004'],
  8. style: 'public'
  9. },function(ret, err) {
  10. if (ret.status) {
  11. api.alert({ msg:'创建成功'});
  12. } else {
  13. api.alert({ msg:JSON.stringify(err)});
  14. }
  15. });

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

destroyGroup

解散群组 ,需要owner/admin权限

destroyGroup({params},callback(ret))

params

id:

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

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true , //布尔类型;是否解散成功,true|false
  3. }

err:

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

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.destroyGroup({
  3. id:'123',
  4. },function(ret, err) {
  5. if (ret.status) {
  6. api.alert({ msg:'解散'});
  7. } else {
  8. api.alert({ msg:JSON.stringify(err)});
  9. }
  10. });

可用性

iOS系统,Android系统

可提供的 1.0.4 及更高版本

getGroupInfo

获取制定 id 的群组信息

getGroupInfo({params},callback(ret))

params

id:

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

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. group: { //JSON对象;获取的群组信息
  3. groupId: '', //字符串类型;群组id
  4. subject: '', //字符串类型;群组的主题
  5. description: '', //字符串类型;群组的描述
  6. memberCount: , //数字类型;群组当前的成员数量
  7. setting: { //仅支持ios
  8. style: '', //字符串类型;群组的类型
  9. maxUserCount: //数字类型;群组的最大成员数(3 - 2000,默认是200)
  10. },
  11. owner: '', //字符串类型;群组的所有者,拥有群的最高权限(只有一人)
  12. members: [], //数组类型;群组的成员列表
  13. blackList: [], //数组类型;群组的黑名单,需要owner权限才能查看,非owner返回undefine
  14. isPublic: , //布尔类型;此群是否为公开群
  15. isBlocked: , //布尔类型;是否屏蔽群消息
  16. isPushNotificationEnabled://布尔类型;此群组是否接收消息推送通知,(仅支持ios)
  17. }
  18. }

示例代码

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

addContact

添加好友

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

params

name:

  • 类型:字符串
  • 描述:要添加的用户

message:

  • 类型:字符串
  • 描述:邀请消息

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true , //布尔类型;是否添加成功,true|false
  3. name: '' //字符串类型;用户名
  4. }

err:

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

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.addContact({
  3. name:'APICloud',
  4. message:'欢迎加入!'
  5. },function(ret, err) {
  6. if (ret.status) {
  7. api.alert({ msg:'添加成功'});
  8. } else {
  9. api.alert({ msg:JSON.stringify(err)});
  10. }
  11. });

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

addContactListener

添加好友状态监听

addContactListener(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. state: '', //字符串类型;群组状态,取值范围如下:
  3. //friendRequestDidApproveByUser:用户B同意用户A的加好友请求后,用户A会收到这个回调
  4. //friendRequestDidDeclineByUser:用户B拒绝用户A的加好友请求后,用户A会收到这个回调
  5. //friendshipDidRemoveByUser:用户B删除与用户A的好友关系后,用户A,B会收到这个回调
  6. //friendshipDidAddByUser:用户B同意用户A的好友申请后,用户A和用户B都会收到这个回调
  7. //friendRequestDidReceiveFromUser:用户B申请加A为好友后,用户A会收到这个回调
  8. username:'', //state为friendshipDidRemoveByUser时此字段为用户好友关系的另一方,state为其他字段时此字段为用户B
  9. message:'' //好友邀请信息,仅state为friendRequestDidReceiveFromUser时有效
  10. }

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.addContactListener(function(ret) {
  3. api.alert(ret);
  4. });

可用性

iOS系统,Android系统

可提供的1.0.5及更高版本

setAutoAcceptFriendInvitation

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

setAutoAcceptFriendInvitation({params})

params

isAutoAcceptFriendInvitation:

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

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.setAutoAcceptFriendInvitation({
  3. isAutoAcceptFriendInvitation:true
  4. });

可用性

iOS系统,Android系统

可提供的1.0.5及更高版本

approveFriendRequest

同意加好友的申请

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

params

name:

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

callback(ret, err)

ret:

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

err:

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

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.approveFriendRequest({
  3. name:'APICloud'
  4. },function(ret, err) {
  5. if (ret.status) {
  6. api.alert({ msg:'同意成功'});
  7. } else {
  8. api.alert({ msg:JSON.stringify(err)});
  9. }
  10. });

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

declineFriendRequest

拒绝加好友的申请

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

params

name:

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

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true , //布尔类型;是否拒绝成功,true|false
  3. name: '' //字符串类型;用户名
  4. }

err:

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

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.declineFriendRequest({
  3. name:'APICloud'
  4. },function(ret, err) {
  5. if (ret.status) {
  6. api.alert({ msg:'同意成功'});
  7. } else {
  8. api.alert({ msg:JSON.stringify(err)});
  9. }
  10. });

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

deleteContact

删除好友

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

params

name:

  • 类型:字符串
  • 描述:要删除的好友

isDeleteConversation:

  • 类型:布尔
  • 描述:(可选项)是否删除会话(仅ios有效)
  • 默认:true

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true , //布尔类型;是否删除成功,true|false
  3. name: '' //字符串类型;用户名
  4. }

err:

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

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.deleteContact({
  3. name:'APICloud',
  4. isDeleteConversation: true
  5. },function(ret, err) {
  6. if (ret.status) {
  7. api.alert({ msg:'删除成功'});
  8. } else {
  9. api.alert({ msg:JSON.stringify(err)});
  10. }
  11. });

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

getContacts

获取好友列表

getContacts({params},callback(ret))

params

original:

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

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true , //布尔类型;是否获取成功,true|false
  3. list: [] //数组类型;获取的好友列表
  4. }

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.getContacts({
  3. original: 'server'
  4. },function(ret) {
  5. api.alert({ msg:JSON.stringify(ret)});
  6. });

可用性

iOS系统、android系统

可提供的 1.0.0 及更高版本

getConversation

新建(仅支持ios)/获取一个会话,android平台不支持创建

getConversation({params},callback(ret))

params

conversationId:

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

type:

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

ifCreate:

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

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true , //布尔类型;是否创建/获取成功,true|false
  3. conversation: {} //JSON 对象;返回会话信息,详细内容参考附件:会话信息
  4. }

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.getConversation({
  3. conversationId: '',
  4. type: 'chat',
  5. ifCreate: true
  6. },function(ret) {
  7. if(ret.status)
  8. api.alert({ msg:JSON.stringify(ret)});
  9. });

可用性

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 对象
  • 内部字段:
  1. {
  2. messages: [] //数组对象;返回会话信息,详细内容参考附件:消息内容
  3. }

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.loadMessageFromDB({
  3. conversationId: '',
  4. type: 'chat',
  5. startMsgId:''
  6. },function(ret) {
  7. if(ret.status)
  8. api.alert({ msg:JSON.stringify(ret)});
  9. });

可用性

iOS系统,android系统

可提供的 1.0.1 及更高版本

deleteConversation

删除会话

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

params

conversationId:

  • 类型:字符串
  • 描述:要删除的会话的id

isDeleteMessages:

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

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true , //布尔类型;是否删除成功,true|false
  3. conversation: {} //JSON 对象;返回删除的会话信息,详细内容参考附件:会话信息
  4. }

err:

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

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.deleteConversation({
  3. conversationId: '',
  4. isDeleteMessages: true
  5. },function(ret,err) {
  6. if(ret.status)
  7. api.alert({ msg:JSON.stringify(ret)});
  8. else
  9. api.alert({ msg:JSON.stringify(err)});
  10. });

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

deleteConversations

删除一组会话

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

params

conversationIds:

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

isDeleteMessages:

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

callback(ret, err)

ret:

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

err:

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

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.deleteConversations({
  3. conversationIds: [],
  4. isDeleteMessages: true
  5. },function(ret,err) {
  6. if(ret.status)
  7. api.alert({ msg:JSON.stringify(ret)});
  8. else
  9. api.alert({ msg:JSON.stringify(err)});
  10. });

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

getAllConversations

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

getAllConversations(callback(ret,err))

callback(ret, err)

ret:

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

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.getAllConversations(function(ret) {
  3. api.alert({ msg:JSON.stringify(ret)});
  4. });

可用性

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 对象
  • 内部字段:
  1. {
  2. status: true, //布尔类型;是否获取成功,true|false
  3. message: {} //JSON 对象;获取的消息,详情参考附录:消息内容
  4. }

err:

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

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.loadMessageWithId({
  3. conversationId: '',
  4. type: 'chat',
  5. messageId: ''
  6. },function(ret,err) {
  7. if(ret.status)
  8. api.alert({ msg:JSON.stringify(ret)});
  9. else
  10. api.alert({ msg:JSON.stringify(err)});
  11. });

可用性

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 对象
  • 内部字段:
  1. {
  2. status: true, //布尔类型;是否获取成功,true|false
  3. message: {} //JSON 对象;获取的消息,详情参考附录:消息内容
  4. }

err:

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

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.lastReceivedMessage({
  3. conversationId: '',
  4. type: 'chat',
  5. messageId: ''
  6. },function(ret,err) {
  7. if(ret.status)
  8. api.alert({ msg:JSON.stringify(ret)});
  9. else
  10. api.alert({ msg:JSON.stringify(err)});
  11. });

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

markMessageAsRead

将会话指定消息置为已读

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

params

conversationId:

  • 类型:字符串
  • 描述:要设置的会话的 id

type:

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

messageId:

  • 类型:字符串
  • 描述:要设置为已读的信息的 id

callback(ret, err)

ret:

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

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. code: //数字类型;错误码
  3. }

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.markMessageAsRead({
  3. conversationId: '',
  4. type: 'chat',
  5. messageId: ''
  6. },function(ret,err) {
  7. if(ret.status)
  8. api.alert({ msg:JSON.stringify(ret)});
  9. else
  10. api.alert({ msg:JSON.stringify(err)});
  11. });

可用性

iOS系统,Android系统

可提供的 1.0.2 及更高版本

markAllMessagesAsRead

将会话所有消息置为已读

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

params

conversationId:

  • 类型:字符串
  • 描述:要设置的会话的 id

type:

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

callback(ret, err)

ret:

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

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. code: //数字类型;错误码
  3. }

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.markAllMessagesAsRead({
  3. conversationId: '',
  4. type: 'chat'
  5. },function(ret,err) {
  6. if(ret.status)
  7. api.alert({ msg:JSON.stringify(ret)});
  8. else
  9. api.alert({ msg:JSON.stringify(err)});
  10. });

可用性

iOS系统,Android系统

可提供的 1.0.2 及更高版本

setConversationExt

设置会话的扩展字段,该字段只保存在本地,不进行网络同步

setConversationExt({params})

params

conversationId:

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

type:

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

ext:

  • 类型:JSON对象
  • 描述:会话的扩展字段,以json格式设定,key为扩展名,value为扩展值
  • 内部字段:
  1. {
  2. key:value,
  3. key:value
  4. }

callback(ret)

ret:

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

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.setConversationExt({
  3. isTop: true
  4. },function(ret) {
  5. });

可用性

iOS,android系统

可提供的 1.0.2 及更高版本

recallMessage

撤回一条消息(此接口必须开通增值服务)

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

params

conversationId:

  • 类型:字符串
  • 描述:要设置的会话的 id

type:

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

messageId:

  • 类型:字符串
  • 描述:要撤回消息的 id

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true , //布尔类型;是否撤回成功,true|false
  3. }

err:

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

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.recallMessage({
  3. conversationId:'',
  4. messageId:''
  5. },function(ret,err) {
  6. if(ret.status)
  7. api.alert('撤回消息成功');
  8. });

可用性

iOS,android系统

可提供的 1.0.6 及更高版本

fetchHistoryMessagesFromServer

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

fetchHistoryMessagesFromServer({params},callback(ret))

params

conversationId:

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

type:

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

startMsgId:

  • 类型:字符串
  • 描述:参考起始消息的ID

pagesize:

  • 类型:数字
  • 描述:(可选项) 获取startMsgId之前的消息数
  • 默认值:10

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. messages: [], //数组对象;返回会话信息,详细内容参考附件:消息内容
  3. cursor:10 //字符类型;获取下一段结果的游标
  4. }

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.fetchHistoryMessagesFromServer({
  3. conversationId: '',
  4. type: 'chat',
  5. startMsgId:''
  6. },function(ret) {
  7. if(ret.status)
  8. api.alert({ msg:JSON.stringify(ret)});
  9. });

可用性

iOS系统,Android系统

可提供的 1.0.4 及更高版本

addMembersToGroup

邀请单人或多人进入群组, (注:android如果是群主加人可以调用此接口)

addMembersToGroup({params},callback(ret))

params

names:

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

groupId:

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

message:

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

callback(ret,err)

ret:

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

err:

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

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.addMembersToGroup({
  3. groupId:'123'
  4. names:['user1','user2'],
  5. message:'欢迎'
  6. },function(ret,err) {
  7. if(ret.status)
  8. api.alert({ msg:JSON.stringify(ret)});
  9. else
  10. api.alert({ msg:JSON.stringify(err)});
  11. });

可用性

iOS系统,Android系统

可提供的 1.0.2 及更高版本

inviteUser

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

inviteUser({params},callback(ret))

params

names:

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

groupId:

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

message:

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

callback(ret)

ret:

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

err:

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

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.inviteUser({
  3. groupId:'123'
  4. names:['user1','user2'],
  5. message:'欢迎'
  6. },function(ret) {
  7. if(ret.status)
  8. api.alert({ msg:JSON.stringify(ret)});
  9. else
  10. api.alert({ msg:JSON.stringify(err)});
  11. });

可用性

Android系统

可提供的 1.0.2 及更高版本

removeMembersFromGroup

把单人或多人移出群组

removeMembersFromGroup({params},callback(ret))

params

names:

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

groupId:

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

callback(ret,err)

ret:

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

err:

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

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.removeMembersFromGroup({
  3. groupId:'123'
  4. names:['user1','user2']
  5. },function(ret,err) {
  6. if(ret.status)
  7. api.alert({ msg:JSON.stringify(ret)});
  8. else
  9. api.alert({ msg:JSON.stringify(err)});
  10. });

可用性

iOS系统,Android系统

可提供的 1.0.2 及更高版本

changeGroupSubject

修改群组群名称

changeGroupSubject({params},callback(ret))

params

groupName:

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

groupId:

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

callback(ret,err)

ret:

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

err:

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

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.changeGroupSubject({
  3. groupId:'123'
  4. groupName:'apple'
  5. },function(ret,err) {
  6. if(ret.status)
  7. api.alert({ msg:JSON.stringify(ret)});
  8. else
  9. api.alert({ msg:JSON.stringify(err)});
  10. });

可用性

iOS系统,Android系统

可提供的 1.0.2 及更高版本

leaveGroup

用户主动退出群组

leaveGroup({params},callback(ret))

params

groupId:

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

callback(ret,err)

ret:

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

err:

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

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.leaveGroup({
  3. groupId:'123'
  4. },function(ret,err) {
  5. if(ret.status)
  6. api.alert({ msg:JSON.stringify(ret)});
  7. else
  8. api.alert({ msg:JSON.stringify(err)});
  9. });

可用性

iOS系统,Android系统

可提供的 1.0.2 及更高版本

joinPublicGroup

加入一个公开群组

joinPublicGroup({params},callback(ret))

params

groupId:

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

callback(ret,err)

ret:

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

err:

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

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.joinPublicGroup({
  3. groupId:'123'
  4. },function(ret,err) {
  5. if(ret.status)
  6. api.alert({ msg:JSON.stringify(ret)});
  7. else
  8. api.alert({ msg:JSON.stringify(err)});
  9. });

可用性

iOS系统,Android系统

可提供的 1.0.2 及更高版本

requestToJoinPublicGroup

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

requestToJoinPublicGroup({params},callback(ret))

params

groupId:

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

aMessage:

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

callback(ret,err)

ret:

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

err:

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

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.requestToJoinPublicGroup({
  3. groupId:'123',
  4. aMessage:'sss'
  5. },function(ret,err) {
  6. if(ret.status)
  7. api.alert({ msg:JSON.stringify(ret)});
  8. else
  9. api.alert({ msg:JSON.stringify(err)});
  10. });

可用性

iOS系统,Android系统

可提供的 1.0.2 及更高版本

approveJoinGroupRequest

批准入群申请

approveJoinGroupRequest({params},callback(ret))

params

groupId:

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

username:

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

callback(ret,err)

ret:

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

err:

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

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.approveJoinGroupRequest({
  3. groupId:'123',
  4. username:'user1'
  5. },function(ret,err) {
  6. if(ret.status)
  7. api.alert({ msg:JSON.stringify(ret)});
  8. else
  9. api.alert({ msg:JSON.stringify(err)});
  10. });

可用性

iOS系统,Android系统

可提供的 1.0.2 及更高版本

declineJoinGroupRequest

拒绝入群申请

declineJoinGroupRequest({params},callback(ret))

params

groupId:

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

username:

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

reason:

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

callback(ret,err)

ret:

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

err:

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

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.declineJoinGroupRequest({
  3. groupId:'123',
  4. username:'user1',
  5. reason:'不认识'
  6. },function(ret,err) {
  7. if(ret.status)
  8. api.alert({ msg:JSON.stringify(ret)});
  9. else
  10. api.alert({ msg:JSON.stringify(err)});
  11. });

可用性

iOS系统,Android系统

可提供的 1.0.2 及更高版本

acceptInvitationFromGroup

接受入群邀请

acceptInvitationFromGroup({params},callback(ret))

params

groupId:

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

username:

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

callback(ret,err)

ret:

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

err:

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

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.acceptInvitationFromGroup({
  3. groupId:'123',
  4. username:'user1',
  5. },function(ret,err) {
  6. if(ret.status)
  7. api.alert({ msg:JSON.stringify(ret)});
  8. else
  9. api.alert({ msg:JSON.stringify(err)});
  10. });

可用性

iOS系统,Android系统

可提供的 1.0.2 及更高版本

declineGroupInvitation

拒绝入群邀请

declineGroupInvitation({params},callback(ret))

params

groupId:

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

username:

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

reason:

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

callback(ret,err)

ret:

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

err:

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

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.declineGroupInvitation({
  3. groupId:'123',
  4. username:'user1',
  5. reason:'123'
  6. },function(ret,err) {
  7. if(ret.status)
  8. api.alert({ msg:JSON.stringify(ret)});
  9. else
  10. api.alert({ msg:JSON.stringify(err)});
  11. });

可用性

iOS系统,Android系统

可提供的 1.0.2 及更高版本

addGroupListener

群组状态监听

addGroupListener(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. state: 'userJoin', //字符串类型;群组状态,取值范围如下:
  3. //muteMember:有成员被加入禁言列表;此状态下只有muteMembers、groupId字段有效
  4. //unmuteMember:有成员被移出禁言列表;此状态下只有unmuteMembers、groupId字段有效
  5. //userJoin:群组加入新成员
  6. //userLeave:群成员退出
  7. //joinGroupReceive:群组的群主收到用户的入群申请
  8. //joinGroupDecline:群主拒绝用户A的入群申请后,用户A会接收到该回调
  9. //joinGroupApprove:群主同意用户A的入群申请后,用户A会接收到该回调
  10. //groupInvitationDidReceive:用户A邀请用户B入群,用户B接收到该回调
  11. //groupInvitationDidAccept:用户B同意用户A的入群邀请后,用户A接收到该回调 //groupInvitationDidDecline:用户B拒绝用户A的入群邀请后,用户A接收到该回调 //didJoinGroup:SDK自动同意了用户A的加B入群邀请后,用户B接收到该回调,需要设置setAutoAcceptGroupInvitation的setAutoAcceptGroupInvitation属性为YES
  12. user:'user1', //群成员名称(iOS state为joinGroupDecline和joinGroupApprove时没有此字段,state为groupInvitationDidReceive和didJoinGroup user为邀请者 state为groupInvitationDidAccept和groupInvitationDidDecline user为被邀请者)
  13. groupId:'111', //群组id
  14. receiveReason:'', //申请者的附属信息(当state为userJoin,userLeave,joinGroupDecline,joinGroupApprove,groupInvitationDidAccept没有此字段state为groupInvitationDidReceive receiveReason为邀请信息,state为groupInvitationDidDecline receiveReason为拒绝理由,state为didJoinGroup receiveReason为邀请消息)
  15. muteMembers:[], // 被禁言的成员;此字段只有在state为muteMember有效
  16. unmuteMembers:[], // 被解除禁言的成员;此字段只有在state为unmuteMembers有效
  17. }

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.addGroupListener(function(ret) {
  3. api.alert(ret);
  4. });

可用性

iOS系统,Android系统

可提供的1.0.2及更高版本

setAutoAcceptGroupInvitation

设置用户是否自动同意群邀请

setAutoAcceptGroupInvitation({params},callback(ret))

params

isAutoAcceptGroupInvitation:

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

callback(ret)

ret:

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

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.setAutoAcceptGroupInvitation({
  3. isAutoAcceptGroupInvitation:true
  4. },function(ret) {
  5. api.alert(ret);
  6. });

可用性

iOS系统,Android系统

可提供的1.0.2及更高版本

getGroupsListFromServer

按数目从服务器获取自己加入的群组

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

params

pageNum:

  • 类型:数字类型
  • 描述:(可选项)获取自己加入群的cursor
  • 默认:1

pageSize:

  • 类型:数字类型
  • 描述:(可选项)期望返回结果的数量, 如果 < 0 则一次返回所有结果
  • 默认:-1

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true , //布尔类型;是否获取成功,true|false
  3. groups:[{ //JSON对象;获取的群组信息
  4. groupId: '', //字符串类型;群组id
  5. subject: '', //字符串类型;群组的主题
  6. description: '', //字符串类型;群组的描述
  7. memberCount: , //数字类型;群组当前的成员数量
  8. setting: { //仅支持ios
  9. style: '', //字符串类型;群组的类型
  10. maxUserCount: //数字类型;群组的最大成员数(3 - 2000,默认是200)
  11. },
  12. owner: '', //字符串类型;群组的所有者,拥有群的最高权限(只有一人)
  13. isPublic: , //布尔类型;此群是否为公开群
  14. isBlocked: , //布尔类型;是否屏蔽群消息
  15. isPushNotificationEnabled://布尔类型;此群组是否接收消息推送通知,(仅支持ios)
  16. }]
  17. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. code: //数字类型;错误码
  3. }

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.getGroupsListFromServer({
  3. pageNum:1,
  4. pageSize:10
  5. },function(ret) {
  6. if(ret.status)
  7. api.alert({ msg:JSON.stringify(ret)});
  8. else
  9. api.alert({ msg:JSON.stringify(err)});
  10. });

可用性

iOS系统,Android系统

可提供的 1.0.4 及更高版本

getAllPublicGroups

获取公开群组

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

params

pageNum:

  • 类型:数字类型
  • 描述:(可选项)获取自己加入群的cursor
  • 默认:0

pageSize:

  • 类型:数字类型
  • 描述:(可选项)期望返回结果的数量, 如果 < 0 则一次返回所有结果
  • 默认:-1

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true , //布尔类型;是否获取成功,true|false
  3. cursor:'', //字符串类型;获取下一段结果的游标
  4. groups:[{ //JSON对象;获取的群组信息
  5. groupId: '', //字符串类型;群组id
  6. subject: '', //字符串类型;群组的主题
  7. description: '', //字符串类型;群组的描述(android不支持)
  8. memberCount: , //数字类型;群组当前的成员数量(android不支持)
  9. setting: { //(android不支持)
  10. style: '', //字符串类型;群组的类型
  11. maxUserCount: //数字类型;群组的最大成员数(3 - 2000,默认是200)
  12. },
  13. owner: '', //字符串类型;群组的所有者,拥有群的最高权限(只有一人)(android不支持)
  14. isPublic: , //布尔类型;此群是否为公开群(android不支持)
  15. isBlocked: , //布尔类型;是否屏蔽群消息(android不支持)
  16. isPushNotificationEnabled://布尔类型;此群组是否接收消息推送通知,(android不支持)
  17. }]
  18. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. code: //数字类型;错误码
  3. }

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.getAllPublicGroups({
  3. pageNum:0,
  4. pageSize:10
  5. },function(ret) {
  6. if(ret.status)
  7. api.alert({ msg:JSON.stringify(ret)});
  8. else
  9. api.alert({ msg:JSON.stringify(err)});
  10. });

可用性

iOS系统,Android系统

可提供的 1.0.4 及更高版本

muteMembers

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

muteMembers({params},callback(ret))

params

muteMembers:

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

muteMilliseconds:

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

groupId:

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

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true , //布尔类型;是否禁言成功,true|false
  3. msg: {} //字符类型;失败信息
  4. }

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.muteMembers({
  3. muteMembers:['',''],
  4. groupId: '123'
  5. },function(ret) {
  6. api.alert({ msg:JSON.stringify(ret)});
  7. });

可用性

iOS系统,Android系统

可提供的 1.0.3 及更高版本

unmuteMembers

解除禁言,需要Owner / Admin权限

unmuteMembers({params},callback(ret))

params

muteMembers:

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

groupId:

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

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true , //布尔类型;是否禁言成功,true|false
  3. msg: {} //字符类型;失败信息
  4. }

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.unmuteMembers({
  3. muteMembers:['',''],
  4. groupId: '123'
  5. },function(ret) {
  6. api.alert({ msg:JSON.stringify(ret)});
  7. });

可用性

iOS系统,Android系统

可提供的 1.0.3 及更高版本

sendText

发送文本消息

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

params

conversationId:

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

chatType:

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

text:

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

from:

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

to:

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

ext:

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

callback(ret, err)

ret:

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

err:

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

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.sendText({
  3. conversationId: '',
  4. chatType: 'chat',
  5. text: 'APICloud hello',
  6. from: '',
  7. to: 'APICloud',
  8. ext: {}
  9. },function(ret,err) {
  10. if(ret.status)
  11. api.alert({ msg:JSON.stringify(ret)});
  12. else
  13. api.alert({ msg:JSON.stringify(err)});
  14. });

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

sendImage

发送图片消息

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

params

conversationId:

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

chatType:

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

path:

  • 类型:字符串
  • 描述:要发送的图片的路径,要求本地路径(fs://、widget://)

displayName:

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

from:

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

to:

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

ext:

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

callback(ret, err)

ret:

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

err:

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

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.sendImage({
  3. conversationId: '',
  4. chatType: 'chat',
  5. path: 'widget://res/abc.png',
  6. displayName: 'cloud',
  7. from: '',
  8. to: 'APICloud',
  9. ext: {}
  10. },function(ret,err) {
  11. if(ret.status)
  12. api.alert({ msg:JSON.stringify(ret)});
  13. else
  14. api.alert({ msg:JSON.stringify(err)});
  15. });

可用性

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

err:

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

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.sendLocation({
  3. conversationId: '',
  4. chatType: 'chat',
  5. address: '北京市天安门',
  6. latitude: ,
  7. longitude: ,
  8. from: '',
  9. to: 'APICloud',
  10. ext: {}
  11. },function(ret,err) {
  12. if(ret.status)
  13. api.alert({ msg:JSON.stringify(ret)});
  14. else
  15. api.alert({ msg:JSON.stringify(err)});
  16. });

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

sendVoice

发送声音消息

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

params

conversationId:

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

chatType:

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

path:

  • 类型:字符串
  • 描述:要发送的音频的路径,要求本地路径(fs://、widget://)

displayName:

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

length:

  • 类型:数字
  • 描述:录音时间(秒)

from:

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

to:

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

ext:

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

callback(ret, err)

ret:

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

err:

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

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.sendVoice({
  3. conversationId: '',
  4. chatType: 'chat',
  5. path: 'widget://res/abc.mp3',
  6. displayName: 'cloud',
  7. from: '',
  8. to: 'APICloud',
  9. ext: {}
  10. },function(ret,err) {
  11. if(ret.status)
  12. api.alert({ msg:JSON.stringify(ret)});
  13. else
  14. api.alert({ msg:JSON.stringify(err)});
  15. });

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

sendVideo

发送视频消息

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

params

conversationId:

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

chatType:

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

path:

  • 类型:字符串
  • 描述:要发送的视频的路径,要求本地路径(fs://、widget://)

displayName:

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

length:

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

thumbPath:

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

from:

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

to:

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

ext:

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

callback(ret, err)

ret:

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

err:

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

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.sendVideo({
  3. conversationId: '',
  4. chatType: 'chat',
  5. path: 'widget://res/abc.mp4',
  6. displayName: 'cloud',
  7. from: '',
  8. to: 'APICloud',
  9. ext: {}
  10. },function(ret,err) {
  11. if(ret.status)
  12. api.alert({ msg:JSON.stringify(ret)});
  13. else
  14. api.alert({ msg:JSON.stringify(err)});
  15. });

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

sendFile

发送文件消息

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

params

conversationId:

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

chatType:

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

path:

  • 类型:字符串
  • 描述:要发送的文件的路径,要求本地路径(fs://、widget://)

displayName:

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

from:

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

to:

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

ext:

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

callback(ret, err)

ret:

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

err:

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

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.sendFile({
  3. conversationId: '',
  4. chatType: 'chat',
  5. path: 'widget://res/abc.zip',
  6. displayName: 'cloud',
  7. from: '',
  8. to: 'APICloud',
  9. ext: {}
  10. },function(ret,err) {
  11. if(ret.status)
  12. api.alert({ msg:JSON.stringify(ret)});
  13. else
  14. api.alert({ msg:JSON.stringify(err)});
  15. });

可用性

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

err:

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

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.sendCmd({
  3. conversationId: '',
  4. chatType: 'chat',
  5. action: '出发',
  6. from: '',
  7. to: 'APICloud',
  8. ext: {}
  9. },function(ret,err) {
  10. if(ret.status)
  11. api.alert({ msg:JSON.stringify(ret)});
  12. else
  13. api.alert({ msg:JSON.stringify(err)});
  14. });

可用性

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 对象
  • 内部字段:
  1. {
  2. status: true, //布尔类型;是否下载成功,true|false
  3. message: {} //JSON 对象;下载的消息,详情参考附录:消息内容
  4. }

err:

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

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.downloadMessageThumbnail({
  3. conversationId: '',
  4. chatType: 'chat',
  5. messageId: ''
  6. },function(ret,err) {
  7. if(ret.status)
  8. api.alert({ msg:JSON.stringify(ret)});
  9. else
  10. api.alert({ msg:JSON.stringify(err)});
  11. });

可用性

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 对象
  • 内部字段:
  1. {
  2. status: true, //布尔类型;是否下载成功,true|false
  3. message: {} //JSON 对象;下载的消息,详情参考附录:消息内容
  4. }

err:

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

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.downloadMessageAttachments({
  3. conversationId: '',
  4. chatType: 'chat',
  5. messageId: ''
  6. },function(ret,err) {
  7. if(ret.status)
  8. api.alert({ msg:JSON.stringify(ret)});
  9. else
  10. api.alert({ msg:JSON.stringify(err)});
  11. });

可用性

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 对象
  • 内部字段:
  1. {
  2. status: true, //布尔类型;是否发送成功,true|false
  3. message: {} //JSON 对象;发送的回执的消息,详情参考附录:消息内容
  4. }

err:

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

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.sendMessageReadAck({
  3. conversationId: '',
  4. chatType: 'chat',
  5. messageId: ''
  6. },function(ret,err) {
  7. if(ret.status)
  8. api.alert({ msg:JSON.stringify(ret)});
  9. else
  10. api.alert({ msg:JSON.stringify(err)});
  11. });

可用性

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 对象
  • 内部字段:
  1. {
  2. conversations: [], //数组类型;仅当 name 为 conversationListDidUpdate 时本参数有值,发送变化的会话信息组成的数组,会话信息参考附录:会话信息
  3. messages: [] //数组类型;仅当 name 非 conversationListDidUpdate 时本参数有值,消息组成的数组,消息详情参考附录:消息内容
  4. }

err:

  • 类型:JSON 对象
  • 描述:消息/消息附件状态发送改变时的错误信息,仅当 name 为msgChange 或 msgAttachmentChange 时本参数有值
  • 内部字段:
  1. {
  2. code: , //数字类型;错误码
  3. msg: '' //字符串类型;错误信息
  4. }

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.addMessageListener({
  3. name: 'receive'
  4. }, function(ret) {
  5. if (ret.messages) {
  6. api.alert({msg:JSON.stringify(ret.messages)});
  7. }
  8. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

removeMessageListener

移除消息相关事件监听

removeMessageListener({params})

params

name:

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

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.addMessageListener({
  3. name: 'receive'
  4. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setLocalNotification

开启关闭本地通知

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

setLocalNotification({params})

params

enable:

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

title:

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

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.setLocalNotification({
  3. enable: true,
  4. title: '您有一条新的消息'
  5. });

可用性

iOS系统

可提供的 1.0.3及更高版本

setCallOptions

1v1音视频通话设置

setCallOptions({params})

params

isSendPushIfOffline:

  • 类型:布尔
  • 描述:(可选项)被叫方不在线时,是否推送来电通知,如果设置为false,不推送通知,返回EMErrorCallRemoteOffline
  • 默认:false

offlineMessageText:

  • 类型:字符串
  • 描述:(可选项)当isSendPushIfOffline=true时起作用,离线推送显示的内容(仅ios支持)
  • 默认:’You have incoming call..’

videoResolution:

  • 类型:数字
  • 描述:(可选项)视频分辨率
  • 默认:0
  • 取值范围:
    • 0:ios:自适应,android:640 * 480
    • 1:352 * 288
    • 2:640 * 480
    • 3:1280 * 720

maxVideoKbps:

  • 类型:数字
  • 描述:(可选项)最大视频码率,范围 50 < videoKbps < 5000, 默认0, 0为自适应,建议设置为0
  • 默认:0

minVideoKbps:

  • 类型:数字
  • 描述:(可选项)最小视频码率
  • 默认:0

maxVideoFrameRate:

  • 类型:数字
  • 描述:(可选项)最大视频帧率

maxAudioKbps:

  • 类型:数字
  • 描述:(可选项)最大音频码率,范围 6 < AudioKbps < 510,默认32,建议设置为32
  • 默认:32

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.setCallOptions({
  3. isSendPushIfOffline:true,
  4. offlineMessageText:''
  5. });

可用性

iOS,android系统

可提供的 2.0.0 及更高版本

startCall

发起1v1音视频通话

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

params

conversationId:

  • 类型:字符串
  • 描述:被呼叫的用户ID

type:

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

isRecord:

  • 类型:布尔
  • 描述:(可选项)是否开启服务端录制
  • 默认:false

isMerge:

  • 类型:布尔
  • 描述:(可选项)录制时是否合并数据流
  • 默认:false

ext:

  • 类型:字符串
  • 描述:(可选项)通话扩展信息,会传给被呼叫方

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 描述:结果
  • 内部字段:
  1. {
  2. status: true, //布尔类型;是否成功,true|false
  3. session:{ //json对象;会话信息 (仅ios返回)
  4. callId:'', //字符串类型;会话标识符
  5. localName:'', //字符串类型;通话本地的username
  6. type:0, //数字类型;通话的类型
  7. //取值如下:
  8. //0:实时语音
  9. //1:实时视频
  10. isCaller:'', //布尔类型;是否为主叫方
  11. remoteName:'', //字符串类型;对方的username
  12. status:0, //数字类型;通话的状态
  13. //取值如下:
  14. //0:通话没开始
  15. //2:通话正在连接
  16. //3:通话已经准备好,等待接听
  17. //4:通话双方同意协商
  18. serverVideoId:'', //字符串类型;服务端录制文件的id
  19. willRecord:true, //布尔类型;是否启用服务器录制
  20. ext:'' //字符串类型;消息扩展
  21. }
  22. }

err:

  • 类型:JSON 对象
  • 描述:结果
  • 内部字段:
  1. {
  2. code: 1, //数字类型;错误码
  3. msg: '' //字符串类型;错误信息
  4. }

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.startCall({
  3. conversationId:'',
  4. type:''
  5. },function(ret, err) {
  6. if (ret.status) {
  7. api.alert({ msg:JSON.stringify(ret)});
  8. } else {
  9. api.alert({ msg:JSON.stringify(err)});
  10. }
  11. });

可用性

iOS,android系统

可提供的 2.0.0 及更高版本

setLocalVideoView

设置1v1视频通话自己视频区域(音频通话掉用此接口无效)(仅ios有效)

setLocalVideoView({params})

params

rect:

  • 类型:JSON 对象
  • 描述:(可选项)视频的位置及尺寸
  • 内部字段:
  1. {
  2. x: 0, //(可选项)数字类型;地图左上角的 x 坐标(相对于所属的 Window 或 Frame);默认:0
  3. y: 0, //(可选项)数字类型;地图左上角的 y 坐标(相对于所属的 Window 或 Frame);默认:0
  4. w: 320, //(可选项)数字类型;地图的宽度;默认:'auto'
  5. h: 480 //(可选项)数字类型;地图的高度;默认:'auto'
  6. }

scaleMode:

  • 类型:数字
  • 描述:(可选项)设视频显示模式
  • 默认值:1
  • 取值范围:
    • 0:按比例缩放(fit)
    • 1:全屏(fill)

bg:

  • 类型:字符串
  • 描述:(可选项)背景配置,支持rgb、rgba()、#
  • 默认值:#000000

fixedOn:

  • 类型:字符串类型
  • 描述:(可选项)视频视图添加到指定 frame 的名字(只指 frame,传 window 无效)
  • 默认:模块依附于当前 window

fixed:

  • 类型:布尔
  • 描述:(可选项)视频是否随所属 window 或 frame 滚动
  • 默认值:true(不随之滚动)

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.setLocalVideoView({
  3. rect: {
  4. x: 0,
  5. y: 0,
  6. w:'auto',
  7. h: 'auto'
  8. },
  9. bg: '#ff0000',
  10. renderModel: 0,
  11. fixedOn: api.frameName,
  12. fixed: true
  13. });

可用性

iOS

可提供的 2.0.0 及更高版本

setRemoteVideoView

设置1v1视频通话对方视频区域(音频通话掉用此接口无效)(仅ios有效)

setRemoteVideoView({params})

params

rect:

  • 类型:JSON 对象
  • 描述:(可选项)视频的位置及尺寸
  • 内部字段:
  1. {
  2. x: 0, //(可选项)数字类型;地图左上角的 x 坐标(相对于所属的 Window 或 Frame);默认:0
  3. y: 0, //(可选项)数字类型;地图左上角的 y 坐标(相对于所属的 Window 或 Frame);默认:0
  4. w: 320, //(可选项)数字类型;地图的宽度;默认:'auto'
  5. h: 480 //(可选项)数字类型;地图的高度;默认:'auto'
  6. }

scaleMode:

  • 类型:数字
  • 描述:(可选项)设视频显示模式
  • 默认值:1
  • 取值范围:
    • 0:按比例缩放(fit)
    • 1:全屏(fill)

bg:

  • 类型:字符串
  • 描述:(可选项)背景配置,支持rgb、rgba()、#
  • 默认值:#000000

fixedOn:

  • 类型:字符串类型
  • 描述:(可选项)视频视图添加到指定 frame 的名字(只指 frame,传 window 无效)
  • 默认:模块依附于当前 window

fixed:

  • 类型:布尔
  • 描述:(可选项)视频是否随所属 window 或 frame 滚动
  • 默认值:true(不随之滚动)

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.setRemoteVideoView({
  3. rect: {
  4. x: 0,
  5. y: 0,
  6. w:'200',
  7. h:'300'
  8. },
  9. bg: '#ff0000',
  10. renderModel: 'fit',
  11. fixedOn: api.frameName,
  12. fixed: true
  13. });

可用性

iOS

可提供的 2.0.0 及更高版本

setVideoView

设置1v1视频通话视频区域(音频通话掉用此接口无效)(仅Android有效)

setVideoView({params})

params

local:

  • 类型:JSON 对象
  • 描述:本地视频参数
  • 内部字段:

    1. {
    2. rect:{ //Json对象类型,视频位置尺寸
    3. x: 0, //(可选项)数字类型;地图左上角的 x 坐标(相对于所属的 Window 或 Frame);默认:0
    4. y: 0, //(可选项)数字类型;地图左上角的 y 坐标(相对于所属的 Window 或 Frame);默认:0
    5. w: 320, //(可选项)数字类型;地图的宽度;默认:'320'
    6. h: 480 //(可选项)数字类型;地图的高度;默认:'480'
    7. },
    8. fixedOn:'', //字符串类型;(可选项)添加到指定 frame 的名字;默认:依附当前win
    9. fixed:, //布尔类型;(可选项 )是否随所属 window 或 frame 滚动
    10. }

remote:

  • 类型:JSON 对象
  • 描述:远程视频参数
  • 内部字段:

    1. {
    2. rect:{ //Json对象类型,视频位置尺寸
    3. x: 0, //(可选项)数字类型;地图左上角的 x 坐标(相对于所属的 Window 或 Frame);默认:0
    4. y: 0, //(可选项)数字类型;地图左上角的 y 坐标(相对于所属的 Window 或 Frame);默认:0
    5. w: 320, //(可选项)数字类型;地图的宽度;默认:'320'
    6. h: 480 //(可选项)数字类型;地图的高度;默认:'480'
    7. },
    8. fixedOn:'', //字符串类型;(可选项)添加到指定 frame 的名字;默认:依附当前win
    9. fixed:, //布尔类型;(可选项 )是否随所属 window 或 frame 滚动
    10. }

localTop:

  • 类型:布尔类型
  • 描述:(可选项)是否本地视频在远程视频上方显示
  • 默认:true

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.setVideoView({
  3. local:{
  4. rect: {
  5. x: 0,
  6. y: 0,
  7. w:200,
  8. h:300
  9. },
  10. fixedOn:'videoFrame',
  11. fixed:false
  12. },
  13. remote:{
  14. rect: {
  15. x: 0,
  16. y: 0,
  17. w:400,
  18. h:600
  19. },
  20. fixedOn:'videoFrame',
  21. fixed:false
  22. },
  23. });

可用性

Android

可提供的 2.0.0 及更高版本

removeLocalVideoView

移除1v1视频通话自己视频区域(音频通话掉用此接口无效)

removeLocalVideoView()

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.removeLocalVideoView();

可用性

iOS,android系统

可提供的 2.0.0 及更高版本

removeRemoteVideoView

移除1v1视频通话对方视频区域(音频通话掉用此接口无效)

removeRemoteVideoView()

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.removeRemoteVideoView();

可用性

iOS,android系统

可提供的 2.0.0 及更高版本

answerIncomingCall

接听1v1音视频通话

answerIncomingCall(callback(ret, err))

callback(ret, err)

ret:

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

err:

  • 类型:JSON 对象
  • 描述:结果
  • 内部字段:
  1. {
  2. code: 1, //数字类型;错误码
  3. msg: '' //字符串类型;错误信息
  4. }

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.answerIncomingCall(function(ret, err) {
  3. if (ret.status) {
  4. api.alert({ msg:JSON.stringify(ret)});
  5. } else {
  6. api.alert({ msg:JSON.stringify(err)});
  7. }
  8. });

可用性

iOS,android系统

可提供的 2.0.0 及更高版本

endCall

结束1v1音视频通话

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

params

reason:

  • 类型:数字
  • 描述:(可选项)结束原因
  • 默认:0
  • 取值范围:
    • 0:挂断
    • 2:拒接
    • 3:占线(仅ios支持)
    • 4:失败(仅ios支持)
    • 5:功能不支持(仅ios支持)
    • 6:不在线(仅ios支持)

callback(ret, err)

ret:

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

err:

  • 类型:JSON 对象
  • 描述:结果
  • 内部字段:
  1. {
  2. code: 1, //数字类型;错误码
  3. msg: '' //字符串类型;错误信息
  4. }

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.endCall({
  3. reason:0
  4. },function(ret, err) {
  5. if (ret.status) {
  6. api.alert({ msg:JSON.stringify(ret)});
  7. } else {
  8. api.alert({ msg:JSON.stringify(err)});
  9. }
  10. });

可用性

iOS,android系统

可提供的 2.0.0 及更高版本

switchCameraPosition

1v1音视频通话切换摄像头,Android不可指定摄像头

switchCameraPosition({params})

params

position:

  • 类型:布尔
  • 描述:(可选项)是否使用前置摄像头, true使用前置, false使用后置(仅ios有效)
  • 默认:false

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.switchCameraPosition({
  3. position: false
  4. });

可用性

iOS,android系统

可提供的 2.0.0 及更高版本

pauseVoice

暂停1v1语音数据传输

pauseVoice()

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.pauseVoice();

可用性

iOS,android系统

可提供的 2.0.0 及更高版本

resumeVoice

恢复1v1语音数据传输

resumeVoice()

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.resumeVoice();

可用性

iOS,android系统

可提供的 2.0.0 及更高版本

pauseVideo

暂停1v1视频图像数据传输

pauseVideo()

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.pauseVideo();

可用性

iOS,android系统

可提供的 2.0.0 及更高版本

resumeVideo

恢复1v1视频图像数据传输

resumeVideo()

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.resumeVideo();

可用性

iOS,android系统

可提供的 2.0.0 及更高版本

setSpeakerEnabled

设置扬声器状态

setSpeakerEnabled({params})

params

speakerEnabled:

  • 类型:布尔
  • 描述:(可选项)是否开启扬声器
  • 默认:false

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.setSpeakerEnabled({
  3. speakerEnabled: false
  4. });

可用性

iOS,android系统

可提供的 2.0.0 及更高版本

addCallListener

添加1v1音视频监听

addCallListener({params},callback(ret))

params

target:

  • 类型:字符串
  • 描述:(可选项)要监听的事件
  • 默认:callDidReceive
  • 取值范围:
    • callDidReceive:用户A拨打用户B,用户B会收到这个回调
    • callDidConnect:通话通道建立完成,用户A和用户B都会收到这个回调
      • callConnecting:通话通道正在建立,用户A和用户B都会收到这个回调(仅android支持)
    • callDidAccept:用户B同意用户A拨打的通话后,双方都会收到这个回调
    • callDidEnde:用户A或用户B结束通话后,对方会收到该回调,通话出现错误,双方都会收到该回调
    • callStateDidChange:用户A和用户B正在通话中,用户A中断或者继续数据流传输时,用户B会收到该回调(仅ios支持)
    • callNetworkDidChange:用户A和用户B正在通话中,用户A的网络状态出现不稳定,用户A会收到该回调
    • callRemoteOffline:用户A给用户B拨打实时通话,用户B不在线,并且用户A掉用setCallOptions接口设置了isSendPushIfOffline == true,则用户A会收到该回调(仅ios支持)
    • netWorkNormal:网络恢复正常(仅android支持)

callback(ret)

ret:

  • 类型:JSON 对象
  • 描述:结果
  • 内部字段:
  1. {
  2. session:{ //json对象;会话信息,target为callRemoteOffline不返回此参数,android target为callDidEnde也不返回此参数
  3. callId:'', //字符串类型;会话标识符
  4. localName:'', //字符串类型;通话本地的username
  5. type:0, //数字类型;通话的类型
  6. //取值如下:
  7. //0:实时语音
  8. //1:实时视频
  9. isCaller:'', //布尔类型;是否为主叫方 (仅ios支持)
  10. remoteName:'', //字符串类型;对方的username
  11. status:0, //数字类型;通话的状态 (仅ios支持)
  12. //取值如下:
  13. //0:通话没开始
  14. //2:通话正在连接
  15. //3:通话已经准备好,等待接听
  16. //4:通话双方同意协商
  17. serverVideoId:'', //字符串类型;服务端录制文件的id
  18. willRecord:true, //布尔类型;是否启用服务器录制
  19. ext:'' //字符串类型;消息扩展
  20. },
  21. reason:0, //字符类型;结束原因;target为callDidEnd时返回此参数(仅ios支持)
  22. //取值如下:
  23. //0:对方挂断
  24. //1:对方没有响应
  25. //2:对方拒接
  26. //3:对方占线
  27. //4:失败
  28. //5:功能不支持
  29. //6:对方不在线
  30. error:{ //json对象;错误;target为callDidEnd并且通话出现错误时返回此参数
  31. code: 1, //数字类型;错误码(仅ios支持)
  32. msg: '' //字符串类型;错误信息
  33. },
  34. type:0, //数字类型;改变类型;target为callStateDidChange时返回此参数(仅ios支持)
  35. //取值如下:
  36. //0:中断语音
  37. //1:继续语音
  38. //2:中断视频
  39. //3:继续视频
  40. status:0, //数字类型;改变类型;target为callNetworkDidChange时返回此参数(仅ios支持)
  41. //取值如下:
  42. //0:正常
  43. //1:不稳定
  44. //2:没有数据
  45. remoteName:'', //字符类型;用户B的环信ID;target为callRemoteOffline时返回此参数 (仅ios支持)
  46. }

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.addCallListener({
  3. target: 'callDidReceive'
  4. },function(ret) {
  5. api.alert({ msg:JSON.stringify(ret)});
  6. });

可用性

iOS,android系统

可提供的 2.0.0 及更高版本

removeCallListener

移除1v1音视频监听

removeCallListener({params})

params

target:

  • 类型:字符串
  • 描述:(可选项)消息推送的免打扰设置
  • 默认:callDidReceive
  • 取值范围:
    • callDidReceive:用户A拨打用户B,用户B会收到这个回调
    • callDidConnect:通话通道建立完成,用户A和用户B都会收到这个回调
      • callConnecting:通话通道正在建立,用户A和用户B都会收到这个回调(仅android支持)
    • callDidAccept:用户B同意用户A拨打的通话后,双方都会收到这个回调
    • callDidEnde:用户A或用户B结束通话后,对方会收到该回调,通话出现错误,双方都会收到该回调
    • callStateDidChange:用户A和用户B正在通话中,用户A中断或者继续数据流传输时,用户B会收到该回调(仅ios支持)
    • callNetworkDidChange:用户A和用户B正在通话中,用户A的网络状态出现不稳定,用户A会收到该回调
    • callRemoteOffline:用户A给用户B拨打实时通话,用户B不在线,并且用户A掉用setCallOptions接口设置了isSendPushIfOffline == true,则用户A会收到该回调(仅ios支持)
    • netWorkNormal:网络恢复正常(仅android支持)

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.removeCallListener({
  3. target: 'callDidReceive'
  4. });

可用性

iOS,android系统

可提供的 2.0.0 及更高版本

starConferenceCall

创建并加入会议

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

params

type:

  • 类型:数字
  • 描述:(可选项)会议类型
  • 默认:10
  • 取值范围:
    • 10:普通通信会议,成员最多6人
    • 11:大型通信会议,成员6-30人
    • 12: 直播间(仅andriod支持)

password:

  • 类型:字符串
  • 描述:(可选项)会议密码
  • 默认:’123’

isRecord:

  • 类型:布尔
  • 描述:(可选项)是否开启服务端录制
  • 默认:false

isMerge:

  • 类型:布尔
  • 描述:(可选项)录制时是否合并数据流
  • 默认:false

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 描述:结果
  • 内部字段:
  1. {
  2. status: true, //布尔类型;是否成功,true|false
  3. conference:{ //json对象;会议信息
  4. callId:'', //字符串类型;会话标识符, 本地生成(仅ios支持)
  5. confId:'', //字符串类型;会议标识符,服务器生成
  6. localName:'', //字符串类型;通话本地的username(仅ios支持)
  7. type:0, //数字类型;会议类型
  8. //取值如下:
  9. //10:普通通信会议,成员最多6人
  10. //11:大型通信会议,成员6-30人
  11. role:0, //数字类型;在会议中的角色
  12. //取值如下:
  13. //0:无角色
  14. //1:观众
  15. //3:主播
  16. //7:管理员
  17. adminIds:[], //字符串数组;管理员列表
  18. speakerIds:[], //字符串数组;主播列表
  19. memberCount:0, //数字类型;会议标识符,服务器生成
  20. willRecord:true, //布尔类型;是否启用服务器录制
  21. }
  22. }

err:

  • 类型:JSON 对象
  • 描述:结果
  • 内部字段:
  1. {
  2. code: 1, //数字类型;错误码
  3. msg: '' //字符串类型;错误信息
  4. }

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.starConferenceCall({
  3. type:10
  4. },function(ret, err) {
  5. if (ret.status) {
  6. api.alert({ msg:JSON.stringify(ret)});
  7. } else {
  8. api.alert({ msg:JSON.stringify(err)});
  9. }
  10. });

可用性

iOS,android系统

可提供的 2.0.0 及更高版本

joinConference

加入已有会议

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

params

password:

  • 类型:字符串
  • 描述:(可选项)会议密码
  • 默认:’123’

confId:

  • 类型:字符串
  • 描述:会议ID

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 描述:结果
  • 内部字段:
  1. {
  2. status: true, //布尔类型;是否成功,true|false
  3. conference:{ //json对象;会议信息
  4. callId:'', //字符串类型;会话标识符, 本地生成(仅ios支持)
  5. confId:'', //字符串类型;会议标识符,服务器生成
  6. localName:'', //字符串类型;通话本地的username(仅ios支持)
  7. type:0, //数字类型;会议类型
  8. //取值如下:
  9. //10:普通通信会议,成员最多6人
  10. //11:大型通信会议,成员6-30人
  11. role:0, //数字类型;在会议中的角色
  12. //取值如下:
  13. //0:无角色
  14. //1:观众
  15. //3:主播
  16. //7:管理员
  17. adminIds:[], //字符串数组;管理员列表
  18. speakerIds:[], //字符串数组;主播列表
  19. memberCount:0, //数字类型;会议标识符,服务器生成
  20. willRecord:true, //布尔类型;是否启用服务器录制
  21. }
  22. }

err:

  • 类型:JSON 对象
  • 描述:结果
  • 内部字段:
  1. {
  2. code: 1, //数字类型;错误码
  3. msg: '' //字符串类型;错误信息
  4. }

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.joinConference({
  3. confId:''
  4. },function(ret, err) {
  5. if (ret.status) {
  6. api.alert({ msg:JSON.stringify(ret)});
  7. } else {
  8. api.alert({ msg:JSON.stringify(err)});
  9. }
  10. });

可用性

iOS,android系统

可提供的 2.0.0 及更高版本

publishConference

发布音视频流

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

params

streamName:

  • 类型:字符串
  • 描述:数据流名称

enableVideo:

  • 类型:布尔类型
  • 描述:(可选项)视频是否可用
  • 默认:false

isMute:

  • 类型:布尔类型
  • 描述:(可选项)是否静音
  • 默认:false

ext:

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

isBackCamera:

  • 类型:布尔类型
  • 描述:(可选项)是否使用后置摄像头
  • 默认:false

maxVideoKbps:

  • 类型:布尔类型
  • 描述:(可选项)最大视频码率,范围 50 < videoKbps < 5000, 默认0, 0为自适应
  • 默认:0

minVideoKbps:

  • 类型:布尔类型
  • 描述:(可选项)最小视频码率, 默认0
  • 默认:0

maxAudioKbps:

  • 类型:布尔类型
  • 描述:(可选项)最大音频码率,范围 6 < AudioKbps < 510, 默认32
  • 默认:32

videoResolution:

  • 类型:数字
  • 描述:(可选项)视频分辨率
  • 默认:0
  • 取值范围:

    • 0:自适应
    • 1:352 * 288
    • 2:640 * 480
    • 3:1280 * 720

    rect:

  • 类型:JSON 对象

  • 描述:(可选项)视频的位置及尺寸(仅ios支持)

  • 内部字段:
  1. {
  2. x: 0, //(可选项)数字类型;地图左上角的 x 坐标(相对于所属的 Window 或 Frame);默认:0
  3. y: 0, //(可选项)数字类型;地图左上角的 y 坐标(相对于所属的 Window 或 Frame);默认:0
  4. w: 320, //(可选项)数字类型;地图的宽度;默认:'auto'
  5. h: 480 //(可选项)数字类型;地图的高度;默认:'auto'
  6. }

scaleMode:

  • 类型:数字
  • 描述:(可选项)设视频显示模式(仅ios支持)
  • 默认值:1
  • 取值范围:
    • 0:按比例缩放(fit)
    • 1:全屏(fill)

bg:

  • 类型:字符串
  • 描述:(可选项)背景配置,支持rgb、rgba()、# (仅ios支持)
  • 默认值:#000000

fixedOn:

  • 类型:字符串类型
  • 描述:(可选项)视频视图添加到指定 frame 的名字(只指 frame,传 window 无效)(仅ios支持)
  • 默认:模块依附于当前 window

fixed:

  • 类型:布尔
  • 描述:(可选项)视频是否随所属 window 或 frame 滚动(仅ios支持)
  • 默认值:true(不随之滚动)

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 描述:结果
  • 内部字段:
  1. {
  2. status: true, //布尔类型;是否成功,true|false
  3. streamId:'' //字符串类型;数据流ID
  4. }

err:

  • 类型:JSON 对象
  • 描述:结果
  • 内部字段:
  1. {
  2. code: 1, //数字类型;错误码
  3. msg: '' //字符串类型;错误信息
  4. }

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.publishConference({
  3. streamName:''
  4. },function(ret, err) {
  5. if (ret.status) {
  6. api.alert({ msg:JSON.stringify(ret)});
  7. } else {
  8. api.alert({ msg:JSON.stringify(err)});
  9. }
  10. });

可用性

iOS,android系统

可提供的 2.0.0 及更高版本

subscribeConference

订阅流

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

params

rect:

  • 类型:JSON 对象
  • 描述:(可选项)视频的位置及尺寸
  • 内部字段:
  1. {
  2. x: 0, //(可选项)数字类型;地图左上角的 x 坐标(相对于所属的 Window 或 Frame);默认:0
  3. y: 0, //(可选项)数字类型;地图左上角的 y 坐标(相对于所属的 Window 或 Frame);默认:0
  4. w: 320, //(可选项)数字类型;地图的宽度;默认:'auto'
  5. h: 480 //(可选项)数字类型;地图的高度;默认:'auto'
  6. }

streamId:

  • 类型:字符串
  • 描述:数据流ID

scaleMode:

  • 类型:数字
  • 描述:(可选项)设视频显示模式
  • 默认值:1
  • 取值范围:
    • 0:按比例缩放(fit)
    • 1:全屏(fill)

bg:

  • 类型:字符串
  • 描述:(可选项)背景配置,支持rgb、rgba()、# (仅ios支持)
  • 默认值:#000000

fixedOn:

  • 类型:字符串类型
  • 描述:(可选项)视频视图添加到指定 frame 的名字(只指 frame,传 window 无效)
  • 默认:模块依附于当前 window

fixed:

  • 类型:布尔
  • 描述:(可选项)视频是否随所属 window 或 frame 滚动
  • 默认值:true(不随之滚动)

callback(ret, err)

ret:

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

err:

  • 类型:JSON 对象
  • 描述:结果
  • 内部字段:
  1. {
  2. code: 1, //数字类型;错误码
  3. msg: '' //字符串类型;错误信息
  4. }

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.subscribeConference({
  3. streamId:''
  4. },function(ret, err) {
  5. if (ret.status) {
  6. api.alert({ msg:JSON.stringify(ret)});
  7. } else {
  8. api.alert({ msg:JSON.stringify(err)});
  9. }
  10. });

可用性

iOS,android系统

可提供的 2.0.0 及更高版本

leaveConference

离开会议

leaveConference(callback(ret,err))

params

confId:

  • 类型:字符串
  • 描述:会议ID(仅android支持)

callback(ret, err)

ret:

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

err:

  • 类型:JSON 对象
  • 描述:结果
  • 内部字段:
  1. {
  2. code: 1, //数字类型;错误码
  3. msg: '' //字符串类型;错误信息
  4. }

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.leaveConference(function(ret, err) {
  3. if (ret.status) {
  4. api.alert({ msg:JSON.stringify(ret)});
  5. } else {
  6. api.alert({ msg:JSON.stringify(err)});
  7. }
  8. });

可用性

iOS,android系统

可提供的 2.0.0 及更高版本

destroyConference

销毁会议

destroyConference(callback(ret,err))

params

confId:

  • 类型:字符串
  • 描述:会议ID(仅android支持)

callback(ret, err)

ret:

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

err:

  • 类型:JSON 对象
  • 描述:结果
  • 内部字段:
  1. {
  2. code: 1, //数字类型;错误码
  3. msg: '' //字符串类型;错误信息
  4. }

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.destroyConference(function(ret, err) {
  3. if (ret.status) {
  4. api.alert({ msg:JSON.stringify(ret)});
  5. } else {
  6. api.alert({ msg:JSON.stringify(err)});
  7. }
  8. });

可用性

iOS,android系统

可提供的 2.0.0 及更高版本

unsubscribeConference

取消订阅流

unsubscribeConference({params},callback(ret))

params

streamId:

  • 类型:字符串
  • 描述:数据流ID

callback(ret, err)

ret:

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

err:

  • 类型:JSON 对象
  • 描述:结果
  • 内部字段:
  1. {
  2. code: 1, //数字类型;错误码
  3. msg: '' //字符串类型;错误信息
  4. }

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.unsubscribeConference({
  3. streamId:''
  4. },function(ret, err) {
  5. if (ret.status) {
  6. api.alert({ msg:JSON.stringify(ret)});
  7. } else {
  8. api.alert({ msg:JSON.stringify(err)});
  9. }
  10. });

可用性

iOS,android系统

可提供的 2.0.0 及更高版本

unpublishConference

取消发布流

unpublishConference({params},callback(ret))

params

streamId:

  • 类型:字符串
  • 描述:数据流ID

callback(ret, err)

ret:

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

err:

  • 类型:JSON 对象
  • 描述:结果
  • 内部字段:
  1. {
  2. code: 1, //数字类型;错误码
  3. msg: '' //字符串类型;错误信息
  4. }

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.unpublishConference({
  3. streamId:''
  4. },function(ret, err) {
  5. if (ret.status) {
  6. api.alert({ msg:JSON.stringify(ret)});
  7. } else {
  8. api.alert({ msg:JSON.stringify(err)});
  9. }
  10. });

可用性

iOS,android系统

可提供的 2.0.0 及更高版本

updateConferenceWithSwitchCamera

会议切换摄像头

updateConferenceWithSwitchCamera()

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.updateConferenceWithSwitchCamera();

可用性

iOS,android系统

可提供的 2.0.0 及更高版本

updateConferenceWithVolume

会议设置是否静音

updateConferenceWithVolume({params})

params

isMute:

  • 类型:布尔类型
  • 描述:是否静音
  • 默认:true

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.updateConferenceWithVolume({isMute:true});

可用性

iOS,android系统

可提供的 2.0.0 及更高版本

updateConferenceWithVideo

会议设置视频是否可用

updateConferenceWithVideo({params})

params

enableVideo:

  • 类型:布尔类型
  • 描述:视频是否可用
  • 默认:true

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.updateConferenceWithVideo({enableVideo:true});

可用性

iOS,android系统

可提供的 2.0.0 及更高版本

updateConferenceMaxVideoKbps

会议更新视频最大码率

unpublishConference({params},callback(ret))

params

maxVideoKbps:

  • 类型:数字
  • 描述:最大码率

callback(ret, err)

ret:

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

err:

  • 类型:JSON 对象
  • 描述:结果
  • 内部字段:
  1. {
  2. code: 1, //数字类型;错误码
  3. msg: '' //字符串类型;错误信息
  4. }

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.updateConferenceMaxVideoKbps({
  3. maxVideoKbps:0
  4. },function(ret, err) {
  5. if (ret.status) {
  6. api.alert({ msg:JSON.stringify(ret)});
  7. } else {
  8. api.alert({ msg:JSON.stringify(err)});
  9. }
  10. });

可用性

iOS,android系统

可提供的 2.0.0 及更高版本

addConferenceListener

添加会议监听

addConferenceListener(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 描述:结果
  • 内部字段:
  1. {
  2. eventType: 'memberDidJoin', //字符串类型;监听的事件类型,取值范围如下:
  3. //memberDidJoin:有人加入会议
  4. //memberDidLeave:有人离开会议
  5. //addStream:有新的数据流上传
  6. //removeStream:有数据流移除
  7. //streamDidUpdate:数据流有更新(是否静音,视频是否可用)
  8. //conferenceDidEnd:会议已经结束
  9. //streamStartTransmitting:数据流已经开始传输数据
  10. //networkDidChange:用户A和用户B正在通话中,用户A的网络状态出现不稳定,用户A会收到该回调
  11. //speakerDidChange:用户A用户B在同一个会议中,用户A开始说话时,用户B会收到该回调
  12. //receiveInvite :收到会议邀请(仅android支持)
  13. conference:{ //json对象,会议实例 ,(仅ios有效)
  14. callId:'', //字符类型;会话标识符, 本地生成
  15. confId:'', //字符类型;会议标识符,服务器生成
  16. localName:'', //字符类型;通话本地的username
  17. type:0, //数字类型;会议类型
  18. role:0, //数字类型;在会议中的角色
  19. adminIds:[], //字符串数组;管理员列表
  20. speakerIds:[], //字符串数组;主播列表
  21. memberCount:0, //数字类型;会议标识符,服务器生成
  22. willRecord:true //布尔类型;是否启用服务器录制
  23. },
  24. member:{ //json对象,用户;eventType == memberDidJoin、memberDidLeave返回
  25. memberId:'', //字符类型;成员标识符
  26. memberName:'', //字符类型;成员名
  27. ext:'' //字符类型;扩展信息
  28. },
  29. stream:{ //json对象,用户;eventType == addStream、removeStream、streamDidUpdate返回
  30. streamId:'', //字符类型;数据流标识符
  31. streamName:'', //字符类型;数据流名称
  32. memberName:'', //字符类型;上传者的成员名称
  33. userName:'', //字符类型;上传者环信ID
  34. enableVoice:true, //布尔类型;音频是否可用
  35. enableVideo:true, //布尔类型;视频是否可用
  36. ext:'', //字符类型;扩展信息
  37. type:0 //数字类型;数据流类型
  38. },
  39. reason:0, //数字类型;结束原因;eventType == conferenceDidEnd时返回(仅ios有效)
  40. //取值如下:
  41. //0:对方挂断
  42. //1:对方没有响应
  43. //2:对方拒接
  44. //3:对方占线
  45. //4:失败
  46. //5:功能不支持
  47. //6:对方不在线
  48. error:{ //json对象;错误内容;eventType == conferenceDidEnd时并且出错返回
  49. code: 1, //数字类型;错误码
  50. msg: '' //字符串类型;错误信息
  51. },
  52. streamId:'', //字符类型;数据流ID;eventType == streamStartTransmitting时返回
  53. status:0, //数字类型;通话网络状态;eventType == networkDidChange时返回 (仅ios有效)
  54. //取值如下:
  55. //0:正常
  56. //1:不稳定
  57. //2:没有数据
  58. streamIds:'', //字符类数组型;数据流ID列表;eventType == speakerDidChange时返回
  59. invited:{ //Json对象类型;邀请信息;eventType == receiveInvite时返回
  60. confId:'', //字符串类型;会议id
  61. password:',' //字符串类型;密码
  62. ext:'', //字符串类型;扩展信息
  63. }
  64. }

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.addConferenceListener(function(ret) {
  3. api.alert({ msg:JSON.stringify(ret)});
  4. });

可用性

iOS,android系统

可提供的 2.0.0 及更高版本

removeConferenceListener

移除会议监听

removeConferenceListener()

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.removeConferenceListener();

可用性

iOS,android系统

可提供的 2.0.0 及更高版本

setPushOption

设置推送全局属性

setPushOption({params},callback(ret))

params

displayName:

  • 类型:字符串
  • 描述:(可选项)推送消息显示的昵称,不传则不设置

displayStyle:

  • 类型:字符串
  • 描述:(可选项)推送消息显示的类型
  • 默认:simpleBanner
  • 取值范围:
    • simpleBanner:简单显示”您有一条新消息”
    • messageSummary:显示消息内容

noDisturbStatus:

  • 类型:字符串
  • 描述:(可选项)消息推送的免打扰设置
  • 默认:close
  • 取值范围:
    • custom:自定义时间段免打扰
    • day:全天免打扰
    • close:关闭免打扰

noDisturbingStartH:

  • 类型:数字
  • 描述:(可选项)消息推送免打扰开始时间,小时,暂时只支持整点(小时),不传则不设置

noDisturbingEndH:

  • 类型:数字
  • 描述:(可选项)消息推送免打扰结束时间,小时,暂时只支持整点(小时),不传则不设置

callback(ret, err)

ret:

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

err:

  • 类型:JSON 对象
  • 描述:结果
  • 内部字段:
  1. {
  2. code: 1, //数字类型;错误码
  3. msg: '' //字符串类型;错误信息
  4. }

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.setPushOption({
  3. displayName: '',
  4. displayStyle: '',
  5. noDisturbStatus:'',
  6. noDisturbingStartH:,
  7. noDisturbingEndH:
  8. },function(ret, err) {
  9. if (ret.status) {
  10. api.alert({ msg:'设置'});
  11. } else {
  12. api.alert({ msg:JSON.stringify(err)});
  13. }
  14. });

可用性

iOS系统

可提供的 1.0.3及更高版本

setApnsNickname

设置推送昵称

setApnsNickname({params},callback(ret))

params

nickname:

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

callback(ret, err)

ret:

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

err:

  • 类型:JSON 对象
  • 描述:结果
  • 内部字段:
  1. {
  2. code: 1, //数字类型;错误码
  3. msg: '' //字符串类型;错误信息
  4. }

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.setApnsNickname({
  3. nickName: ''
  4. },function(ret, err) {
  5. if (ret.status) {
  6. api.alert({ msg:'设置'});
  7. } else {
  8. api.alert({ msg:JSON.stringify(err)});
  9. }
  10. });

可用性

iOS系统

可提供的 1.0.3及更高版本

ignoreGroupPush

设置群组忽略推送

ignoreGroupPush({params},callback(ret))

params

groupId:

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

callback(ret, err)

ret:

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

err:

  • 类型:JSON 对象
  • 描述:结果
  • 内部字段:
  1. {
  2. code: 1, //数字类型;错误码
  3. msg: '' //字符串类型;错误信息
  4. }

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.ignoreGroupPush({
  3. groupId: ''
  4. },function(ret, err) {
  5. if (ret.status) {
  6. api.alert({ msg:'设置'});
  7. } else {
  8. api.alert({ msg:JSON.stringify(err)});
  9. }
  10. });

可用性

iOS系统

可提供的 1.0.3及更高版本

ignoreGroupsPush

批量设置忽略推送的群组

ignoreGroupsPush({params},callback(ret))

params

groupIds:

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

callback(ret, err)

ret:

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

err:

  • 类型:JSON 对象
  • 描述:结果
  • 内部字段:
  1. {
  2. code: 1, //数字类型;错误码
  3. msg: '' //字符串类型;错误信息
  4. }

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.ignoreGroupsPush({
  3. groupIds: ['','']
  4. },function(ret, err) {
  5. if (ret.status) {
  6. api.alert({ msg:'设置'});
  7. } else {
  8. api.alert({ msg:JSON.stringify(err)});
  9. }
  10. });

可用性

iOS系统

可提供的 1.0.3及更高版本

getAllIgnoredGroupIds

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

getAllIgnoredGroupIds(callback(ret))

callback(ret, err)

ret:

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

err:

  • 类型:JSON 对象
  • 描述:结果
  • 内部字段:
  1. {
  2. code: 1, //数字类型;错误码
  3. msg: '' //字符串类型;错误信息
  4. }

示例代码

  1. var easeChat = api.require('easeChat');
  2. easeChat.getAllIgnoredGroupIds(function(ret, err) {
  3. if (ret.status) {
  4. api.alert({ msg:'设置'});
  5. } else {
  6. api.alert({ msg:JSON.stringify(err)});
  7. }
  8. });

可用性

iOS系统

可提供的 1.0.3及更高版本

附录

会话信息

  • 类型:JSON 对象
  • 描述:创建、获取到的会话的相关信息
  • 内部字段:
  1. {
  2. conversationId: '', //字符串类型;会话 ID
  3. unreadMessagesCount: , //数字类型;会话未读消息数量
  4. ext: {}, //JSON 对象;会话扩展属性
  5. type: '', //字符串类型;会话类型,取值范围如下:
  6. //chat:单聊会话
  7. //groupChat:群聊会话
  8. //chatRoom:聊天室会话
  9. latestMessage: {} //JSON 对象;会话最新一条消息,详情参考附录:消息内容
  10. }

消息内容

  • 类型:JSON 对象
  • 描述:获取到的消息包含的内容及其相关信息
  • 内部字段:
  1. {
  2. messageId: '', //字符串类型;本条消息的 ID
  3. conversationId: , //字符串类型;本条消息所在会话的会话 ID
  4. direction: '', //字符串类型;消息的方向,取值范围如下:
  5. //send:发送的消息
  6. //receive:接收的消息
  7. from: '', //字符串类型;消息的发送方
  8. to: '', //字符串类型;消息的接收方
  9. timestamp: , //数字类型;时间戳,服务器收到此消息的时间
  10. localTime: , //数字类型;客户端发送/收到此消息的时间
  11. chatType: '', //字符串类型;本条消息的类型,取值范围如下:
  12. //chat:单聊会话
  13. //groupChat:群聊会话
  14. //chatRoom:聊天室会话
  15. status: '', //字符串类型:消息的状态,取值范围如下:
  16. //pending:发送未开始
  17. //delivering:正在发送
  18. //successed:发送成功
  19. //failed:发送失败
  20. isReadAcked: , //布尔类型;已读回执是否已发送/收到, 对于发送方表示是否已经收到已读回执,对于接收方表示是否已经发送已读回执
  21. isDeliverAcked: , //布尔类型;送达回执是否已发送/收到,对于发送方表示是否已经收到送达回执,对于接收方表示是否已经发送送达回执,如果EMOptions设置了enableDeliveryAck,SDK收到消息后会自动发送送达回执
  22. isRead: , //布尔类型;是否已读
  23. ext: {}, //JSON 对象;消息扩展,Key值类型必须是NSString, Value值类型必须是NSString或者 NSNumber类型的 BOOL, int, unsigned in, long long, double
  24. body: {} //JSON 对象;消息体(消息包含的内容),,详情参考附录:消息体内容
  25. }

消息体内容

  • 类型:JSON 对象
  • 描述:消息体包含的内容及其相关信息
  • 内部字段:
  1. {
  2. type: '', //字符串类型;消息体的类型,取值范围如下:
  3. //text:文本类型
  4. //image:图片类型
  5. //video:视频类型
  6. //location:位置类型
  7. //voice:语音类型
  8. //file:文件类型
  9. //cmd:命令类型
  10. ...: ... //消息体除type外的其它内容,详情参考附录:消息体-文本、图片、视频、位置、语音、文件、命令
  11. }

消息体-文本

  • 类型:JSON 对象
  • 描述:文本类型的消息体内容
  • 内部字段:
  1. {
  2. type: 'text',
  3. text: '' //字符串类型;文本内容
  4. }

消息体-图片

  • 类型:JSON 对象
  • 描述:图片类型的消息体内容
  • 内部字段:
  1. {
  2. type: 'image',
  3. displayName: '', //字符串类型;附件的显示名
  4. localPath: '', //字符串类型;附件的本地路径
  5. remotePath: '', //字符串类型;附件在服务器上的路径
  6. secretKey: '', //字符串类型;附件的密钥, 下载附件时需要密匙做校验
  7. fileLength: , //数字类型;附件的大小, 以字节为单位
  8. downloadStatus: '', //字符串类型;附件的下载状态,取值范围如下:
  9. //downloading:正在下载
  10. //successed:下载成功
  11. //failed:下载失败
  12. //pending:准备下载
  13. thumbnailDownloadStatus: '',//字符串类型;缩略图下载状态,取值范围如下:
  14. //downloading:正在下载
  15. //successed:下载成功
  16. //failed:下载失败
  17. //pending:准备下载
  18. size: { // JSON 对象;图片大小
  19. width: , //数字类型;图片的宽
  20. height: //数字类型;图片的高
  21. },
  22. compressionRatio: , //数字类型;设置发送图片消息时的压缩率,1.0时不压缩,默认值是0.6,如果设置了小于等于0的值,则使用默认值
  23. thumbnailDisplayName: '', //字符串类型;缩略图的显示名
  24. thumbnailLocalPath: '', //字符串类型;缩略图的本地路径
  25. thumbnailRemotePath: '', //字符串类型;缩略图在服务器的路径
  26. thumbnailSecretKey: '', //字符串类型;缩略图的密钥, 下载缩略图时需要密匙做校验
  27. thumbnailSize: { // JSON 对象;缩略图片大小
  28. width: , //数字类型;图片的宽
  29. height: //数字类型;图片的高
  30. },
  31. thumbnailFileLength: //数字类型;缩略图文件的大小, 以字节为单位
  32. }

消息体-视频

  • 类型:JSON 对象
  • 描述:视频类型的消息体内容
  • 内部字段:
  1. {
  2. type: 'video',
  3. duration: '', //数字类型;视频时长, 秒为单位
  4. displayName: '', //字符串类型;附件的显示名
  5. localPath: '', //字符串类型;附件的本地路径
  6. remotePath: '', //字符串类型;附件在服务器上的路径
  7. secretKey: '', //字符串类型;附件的密钥, 下载附件时需要密匙做校验
  8. fileLength: , //数字类型;附件的大小, 以字节为单位
  9. downloadStatus: '', //字符串类型;附件的下载状态,取值范围如下:
  10. //downloading:正在下载
  11. //successed:下载成功
  12. //failed:下载失败
  13. //pending:准备下载
  14. thumbnailLocalPath: '', //字符串类型;缩略图的本地路径
  15. thumbnailRemotePath: '', //字符串类型;缩略图在服务器的路径
  16. thumbnailSecretKey: '', //字符串类型;缩略图的密钥, 下载缩略图时需要密匙做校验
  17. thumbnailSize: { // JSON 对象;缩略图片大小
  18. width: , //数字类型;图片的宽
  19. height: //数字类型;图片的高
  20. },
  21. thumbnailDownloadStatus: '',//字符串类型;缩略图下载状态,取值范围如下:
  22. //downloading:正在下载
  23. //successed:下载成功
  24. //failed:下载失败
  25. //pending:准备下载
  26. }

消息体-位置

  • 类型:JSON 对象
  • 描述:位置类型的消息体内容
  • 内部字段:
  1. {
  2. type: 'location',
  3. address: '', //字符串类型;地址信息
  4. latitude: , //数字类型;纬度
  5. longitude: //数字类型;经度
  6. }

消息体-语音

  • 类型:JSON 对象
  • 描述:语音类型的消息体内容
  • 内部字段:
  1. {
  2. type: 'voice',
  3. duration: '', //数字类型;语音时长, 秒为单位
  4. displayName: '', //字符串类型;附件的显示名
  5. localPath: '', //字符串类型;附件的本地路径
  6. remotePath: '', //字符串类型;附件在服务器上的路径
  7. secretKey: '', //字符串类型;附件的密钥, 下载附件时需要密匙做校验
  8. fileLength: , //数字类型;附件的大小, 以字节为单位
  9. downloadStatus: '' //字符串类型;附件的下载状态,取值范围如下:
  10. //downloading:正在下载
  11. //successed:下载成功
  12. //failed:下载失败
  13. //pending:准备下载
  14. }

消息体-文件

  • 类型:JSON 对象
  • 描述:文本类型的消息体内容
  • 内部字段:
  1. {
  2. type: 'file',
  3. displayName: '', //字符串类型;附件的显示名
  4. localPath: '', //字符串类型;附件的本地路径
  5. remotePath: '', //字符串类型;附件在服务器上的路径
  6. secretKey: '', //字符串类型;附件的密钥, 下载附件时需要密匙做校验
  7. fileLength: , //数字类型;附件的大小, 以字节为单位
  8. downloadStatus: '' //字符串类型;附件的下载状态,取值范围如下:
  9. //downloading:正在下载
  10. //successed:下载成功
  11. //failed:下载失败
  12. //pending:准备下载
  13. }

消息体-命令

  • 类型:JSON 对象
  • 描述:命令类型的消息体内容
  • 内部字段:
  1. {
  2. type: 'cmd',
  3. action: '', //字符串类型;命令内容
  4. }