Skip to content
Hevin edited this page Nov 28, 2017 · 24 revisions

Contents

对于 ionic 项目,需要在 .ts 文件中声明 declare var JMessage: any

所有 API 基本为 do(params, successCallback, errorCallback) 的形式(有些方法不需要回调函数),其中 params 为 object, successCallbackerrorCallback 为 function,并会通过参数返回调用结果。

errorCallback 形式如下:

function (error) {
  var code = error.code         // 错误码
  var desc = error.description  // 错误详细描述
}

错误码定义可参考:

初始化

init

初始化插件。建议在应用起始页的构造函数中调用。

示例

JMessage.init({ isOpenMessageRoaming: true })

参数说明

  • isOpenMessageRoaming: 是否开启消息漫游功能。打开消息漫游之后,用户多个设备之间登录时,会自动将当前登录用户的历史消息同步到本地,同步完成后会触发 syncRoamingMessage 事件。

setDebugMode

设置是否开启 debug 模式,开启后 SDK 将会输出更多日志信息,推荐在应用对外发布时关闭。

示例

JMessage.setDebugMode({ enable: true })

用户登录、注册及属性维护

register

用户注册。

示例

JMessage.register({ username: 'username', password: 'password', nickname: 'nickname',
  gender: 'male', extras: { key1: 'value1' }},
  () => {
    // do something.

  }, (error) => {
    var code = error.code
    var desc = error.description
  })

参数说明

  • username: 用户名。在应用中用于唯一标识用户,必须唯一。支持以字母或者数字开头,支持字母、数字、下划线、英文点(.)、减号、@。长度限制:Byte(4~128)。
  • password: 用户密码。不限制字符。长度限制:Byte(4~128)。
  • nickname: String,昵称。
  • address: String,具体地址。
  • birthday:Number, 生日。为具体日期的毫秒数。
  • gender:String,性别。支持 'male', 'female' 和 'unknown'。
  • region: String,地区。
  • extras: Object,自定义键值对,value 只能为字符串类型。

login

用户登录。

示例

JMessage.login({ username: 'username', password: 'password' },
  () => {

  }, (error) => {
    var code = error.code
    var desc = error.description
  })

参数说明

  • username: 用户名。
  • password: 用户密码。

logout

用户登出。

示例

JMessage.logout()

getMyInfo

获取当前登录用户信息。如果未登录会返回空对象。

关于 UserInfo 的构成,可以查看文档

示例

JMessage.getMyInfo((myInfo) => {
  // do something.
})

getUserInfo

获取用户信息。该接口可以获取不同 AppKey 下(即不同应用)的用户信息,如果 AppKey 为空,则默认为当前应用下。

示例

JMessage.getUserInfo({ username: 'username', appKey: 'your_app_key' },
  (userInfo) => {
    // do something.

  }, (error) => {
    var code = error.code
    var desc = error.description
  })

updateMyPassword

更新当前登录用户的密码。

示例

JMessage.updateMyPassword({ oldPwd: 'old_password', newPwd: 'new_password' },
  () => {
    // do something.

  }, (error) => {
    var code = error.code
    var desc = error.description
  })

updateMyAvatar

更新当前登录用户的头像。

示例

JMessage.updateMyAvatar({ imgPath: 'img_local_path' },
  () => {
    // do something.

  }, (error) => {
    var code = error.code
    var desc = error.description
  })

参数说明

  • imgPath: 本地图片文件的绝对路径地址。注意在 Android 6.0 及以上版本系统中,需要动态请求 WRITE_EXTERNAL_STORAGE 权限。 两个系统中的图片路径分别类似于:

    • Android:/storage/emulated/0/DCIM/Camera/IMG_20160526_130223.jpg
    • iOS:/var/mobile/Containers/Data/Application/7DC5CDFF-6581-4AD3-B165-B604EBAB1250/tmp/photo.jpg

downloadThumbUserAvatar

下载用户头像缩略图(不会重复下载)。

示例

JMessage.downloadThumbUserAvatar({ username: 'username', appKey: 'target_user_appKey' },
  (result) => {
    var username = result.username
    var appKey = result.appKey
    var filePath = result.filePath  // 图片文件路径

  }, (error) => {
    var code = error.code
    var desc = error.description
  })

参数说明

  • username: 用户名;
  • appKey: 用户所属应用的 AppKey,如果为空或不填则默认为当前应用。

downloadOriginalUserAvatar

下载用户头像原图(不会重复下载)。如果用户未设置头像,返回的 filePath 为空字符串。

示例

JMessage.downloadOriginalUserAvatar({ username: 'username', appKey: 'target_user_appKey' },
  (result) => {
    var username = result.username
    var appKey = result.appKey
    var filePath = result.filePath  // 图片文件路径

  }, (error) => {
    var code = error.code
    var desc = error.description
  })

参数说明

  • username: 用户名;
  • appKey: 用户所属应用的 AppKey,如果为空或不填则默认为当前应用。

updateMyInfo

更新当前登录用户信息。包括了:昵称(nickname)、生日(birthday)、个性签名(signature)、性别(gender)、地区(region)和具体地址(address)。

示例

JMessage.updateMyInfo({ nickname: 'nickname' },
  () => {
    // do something.

  }, (error) => {
    var code = error.code
    var desc = error.description
  })

参数说明

  • nickname: 昵称。不支持字符 "\n" 和 "\r";长度限制:Byte (0~64)。
  • birthday: 生日日期的毫秒数;Number 类型。
  • gender: 必须为 'male', 'female' 和 'unknown' 中的一种。
  • 其余都为 string 类型,支持全部字符串;长度限制为 Byte (0~250)。

群组

目前支持创建、退出群组;添加、移除群成员以及向群组发送群聊会话。

createGroup

创建群组。

示例

JMessage.createGroup({ name: 'group_name', desc: 'group_desc' },
  (groupId) => {  // groupId: 新创建的群组 ID
    // do something.

  }, (error) => {
    var code = error.code
    var desc = error.description
  })

参数说明

  • name: 群组名。不支持 "\n" 和 "\r" 字符,长度限制为 0 ~ 64 Byte。
  • desc: 群组描述。长度限制为 0 ~ 250 Byte。

getGroupIds

获取当前用户所加入的群组 ID 列表。

示例

JMessage.getGroupIds((groupIdArr) => {  // 群组 id 数组
  // do something.

}, (error) => {
    var code = error.code
    var desc = error.description
})

getGroupInfo

获取群组信息。

示例

JMessage.getGroupInfo({id: 'groupId'},
  (groupInfo) => {
    // do something.

  }, (error) => {
    var code = error.code
    var desc = error.description
  })

updateGroupInfo

更新群组信息。

示例

JMessage.getGroupInfo({id: 'groupId', newName: 'new_group_name', newDesc: 'new_group_desc'},
  (groupInfo) => {
    // do something.

  }, (error) => {
    var code = error.code
    var desc = error.description
  })

参数说明

  • id: 群组 id。
  • newName: 新的群组名称。不支持 "\n" 和 "\r" 字符,长度要求为 0 ~ 64 Byte。
  • newDesc: 新的群组详细描述。长度要求为 0 ~ 250 Byte。

addGroupMembers

添加群成员。

示例

JMessage.addGroupMembers({id: 'groupId', usernameArray: ['user1', 'user2'], appKey: 'appKey'},
  () => {

  }, (error) => {
    var code = error.code
    var desc = error.description
  })

参数说明

  • id: 群组 id。
  • usernameArray: 被添加的用户名数组。
  • appKey: 待添加用户所在应用的 AppKey。如果为空或不填,默认为当前应用。

removeGroupMembers

移除群组成员。

示例

JMessage.removeGroupMembers({ id: 'groupId', usernameArray: ['user1', 'user2'], appKey: 'appKey' },
  () => {

  }, (error) => {
    var code = error.code
    var desc = error.description
  })

参数说明

  • id: 群组 id。
  • usernameArray: 被添加的用户名数组。
  • appKey: 待添加用户所在应用的 AppKey。如果为空或不填,默认为当前应用。

getGroupMembers

获取群组成员列表。

示例

JMessage.getGroupMembers({ id: 'groupId' },
  (userArray) => {  // 用户对象数组
    // do something.

  }, (error) => {
    var code = error.code
    var desc = error.description
  })

参数说明

  • id: 群组 id。

exitGroup

退出群组。

示例

JMessage.exitGroup({ id: 'groupId'},
  () => {
    // do something.

  }, (error) => {
    var code = error.code
    var desc = error.description
  })

参数说明

  • id: 群组 Id。

blockGroupMessage

设置是否屏蔽指定群组消息。

示例

JMessage.blockGroupMessage({ id: '15123', isBlock: true },
  () => {
    // do something.
  }, (error) => {
    var code = error.code
    var desc = error.desc
  })

参数说明

  • id: 群组 Id。
  • isBlock: true - 屏蔽;false - 取消屏蔽。

isGroupBlocked

查询指定群组是否被屏蔽。

示例

JMessage.isGroupBlocked({ id: '15123' },
  (result) => {
    var isBlocked = result.isBlocked
  }, (error) => {
    var code = error.code
    var desc = error.desc
  })

参数说明

  • id: 群组 Id。

getBlockedGroupList

获取被当前登录用户屏蔽的群组列表。

示例

JMessage.getBlockedGroupList((groupArr) => {
  for (groupInfo in groupArr) {
    // do something.
  }
}, (error) => {
  var code = error.code
  var desc = error.desc
})

返回值说明

聊天

注意在第一次发送消息之前,必须先调用 createConversation 方法。

sendTextMessage

发送文本消息。

示例

JMessage.sendTextMessage({ type: 'single', username: 'username', appKey: 'appKey',
  text: 'hello world', extras: {key1: 'value1'}, messageSendingOptions: JMessage.messageSendingOptions },
  (msg) => {
    // do something.

  }, (error) => {
    var code = error.code
    var desc = error.description
  })

// or

JMessage.sendTextMessage({ type: 'group', groupId: 'target_group_id', text: 'hello world',
  extras: {key1: 'value1'}, messageSendingOptions: JMessage.messageSendingOptions },
  (msg) => {
    // do something.

  }, (error) => {
    var code = error.code
    var desc = error.description
  })

参数说明

  • type: 会话类型。可以为 'single' 或 'group'。
  • username: 对方用户的用户名。当 type 为 'single' 时,username 为必填。
  • appKey: 对方用户所属应用的 AppKey。如果不填,默认为当前应用。
  • groupId: 对象群组 id。当 type 为 'group' 时,groupId 为必填。
  • text: 消息内容。
  • extras: 自定义键值对,value 必须为字符串类型。
  • messageSendingOptions: 消息发送配置参数(只对 Android 生效)。支持的属性:
    • isShowNotification: 接收方是否针对此次消息发送展示通知栏通知。默认为 true
    • isRetainOffline: 是否让后台在对方不在线时保存这条离线消息,等到对方上线后再推送给对方。默认为 true
    • isCustomNotificationEnabled: 是否开启自定义接收方通知栏功能,设置为 true 后可设置下面的 notificationTitlenotificationText。默认未设置。
    • notificationTitle: 设置此条消息在接收方通知栏所展示通知的标题。
    • notificationText: 设置此条消息在接收方通知栏所展示通知的内容。

sendImageMessage

发送图片消息,在收到消息时 SDK 默认会自动下载缩略图,如果要下载原图,需调用 downloadOriginalImage 方法。

示例

JMessage.sendImageMessage({ type: 'single', username: 'username', appKey: 'appKey',
  path: 'image_path', extras: {key1: 'value1'}, messageSendingOptions: JMessage.messageSendingOptions },
  (msg) => {
    // do something.

  }, (error) => {
    var code = error.code
    var desc = error.description
  })

// or

JMessage.sendImageMessage({ type: 'group', groupId: 'target_group_id', path: 'image_path',
  extras: {key1: 'value1'}, messageSendingOptions: JMessage.messageSendingOptions },
  (msg) => {
    // do something.

  }, (error) => {
    var code = error.code
    var desc = error.description
  })

参数说明

  • type: 会话类型。可以为 'single' 或 'group'。
  • username: 对方用户的用户名。当 type 为 'single' 时,username 为必填。
  • appKey: 对方用户所属应用的 AppKey。如果不填,默认为当前应用。
  • groupId: 对象群组 id。当 type 为 'group' 时,groupId 为必填。
  • path: 本地图片的绝对路径。格式分别类似为:
    • Android:/storage/emulated/0/DCIM/Camera/IMG_20160526_130223.jpg
    • iOS:/var/mobile/Containers/Data/Application/7DC5CDFF-6581-4AD3-B165-B604EBAB1250/tmp/photo.jpg
  • extras: 自定义键值对,value 必须为字符串类型。
  • messageSendingOptions: 消息发送配置参数(只对 Android 生效)。支持的属性:
    • isShowNotification: 接收方是否针对此次消息发送展示通知栏通知。默认为 true
    • isRetainOffline: 是否让后台在对方不在线时保存这条离线消息,等到对方上线后再推送给对方。默认为 true
    • isCustomNotificationEnabled: 是否开启自定义接收方通知栏功能,设置为 true 后可设置下面的 notificationTitlenotificationText。默认未设置。
    • notificationTitle: 设置此条消息在接收方通知栏所展示通知的标题。
    • notificationText: 设置此条消息在接收方通知栏所展示通知的内容。

sendVoiceMessage

发送语音消息,在收到消息时 SDK 默认会自动下载语音文件,如果下载失败(即语音消息文件路径为空),可调用 downloadVoiceFile 手动下载。

示例

JMessage.sendVoiceMessage({ type: 'single', username: 'username', appKey: 'appKey',
  path: 'voice_file_path', extras: {key1: 'value1'}, messageSendingOptions: JMessage.messageSendingOptions },
  (msg) => {
    // do something.

  }, (error) => {
    var code = error.code
    var desc = error.description
  })

// or

JMessage.sendVoiceMessage({ type: 'group', groupId: 'target_group_id', path: 'voice_file_path',
  extras: {key1: 'value1'}, messageSendingOptions: JMessage.messageSendingOptions },
  (msg) => {
    // do something.

  }, (error) => {
    var code = error.code
    var desc = error.description
  })

参数说明

  • type: 会话类型。可以为 'single' 或 'group'。
  • username: 对方用户的用户名。当 type 为 'single' 时,username 为必填。
  • appKey: 对方用户所属应用的 AppKey。如果不填,默认为当前应用。
  • groupId: 对象群组 id。当 type 为 'group' 时,groupId 为必填。
  • path: 本地音频文件的绝对路径。
  • extras: 自定义键值对,value 必须为字符串类型。
  • messageSendingOptions: 消息发送配置参数(只对 Android 生效)。支持的属性:
    • isShowNotification: 接收方是否针对此次消息发送展示通知栏通知。默认为 true
    • isRetainOffline: 是否让后台在对方不在线时保存这条离线消息,等到对方上线后再推送给对方。默认为 true
    • isCustomNotificationEnabled: 是否开启自定义接收方通知栏功能,设置为 true 后可设置下面的 notificationTitlenotificationText。默认未设置。
    • notificationTitle: 设置此条消息在接收方通知栏所展示通知的标题。
    • notificationText: 设置此条消息在接收方通知栏所展示通知的内容。

sendCustomMessage

发送自定义消息。

示例

JMessage.sendCustomMessage({ type: 'single', username: 'username', appKey: 'appKey',
  customObject: {key1: 'value1'}, messageSendingOptions: JMessage.messageSendingOptions },
  (msg) => {
    // do something.

  }, (error) => {
    var code = error.code
    var desc = error.description
  })

// or

JMessage.sendCustomMessage({ type: 'group', groupId: 'target_group_id', path: 'voice_file_path',
  customObject: {key1: 'value1'}, messageSendingOptions: JMessage.messageSendingOptions },
  (msg) => {
    // do something.

  }, (error) => {
    var code = error.code
    var desc = error.description
  })

参数说明

  • type: 会话类型。可以为 'single' 或 'group'。
  • username: 对方用户的用户名。当 type 为 'single' 时,username 为必填。
  • appKey: 对方用户所属应用的 AppKey。如果不填,默认为当前应用。
  • groupId: 对象群组 id。当 type 为 'group' 时,groupId 为必填。
  • customObject: 自定义键值对,value 必须为字符串类型。
  • messageSendingOptions: 消息发送配置参数(只对 Android 生效)。支持的属性:
    • isShowNotification: 接收方是否针对此次消息发送展示通知栏通知。默认为 true
    • isRetainOffline: 是否让后台在对方不在线时保存这条离线消息,等到对方上线后再推送给对方。默认为 true
    • isCustomNotificationEnabled: 是否开启自定义接收方通知栏功能,设置为 true 后可设置下面的 notificationTitlenotificationText。默认未设置。
    • notificationTitle: 设置此条消息在接收方通知栏所展示通知的标题。
    • notificationText: 设置此条消息在接收方通知栏所展示通知的内容。

sendLocationMessage

发送地理位置消息,通常需要配合地图插件使用。

示例

JMessage.sendLocationMessage({ type: 'single', username: 'username', appKey: 'appKey',
  latitude: 22.54, longitude: 114.06, scale:1, address: '深圳市',
  extras: {key1: 'value1'}, messageSendingOptions: JMessage.messageSendingOptions },
  (msg) => {
    // do something.

  }, (error) => {
    var code = error.code
    var desc = error.description
  })

// or

JMessage.sendLocationMessage({ type: 'group', groupId: 'target_group_id',
  latitude: 22.54, longitude: 114.06, scale:1, address: '深圳市',
  extras: {key1: 'value1'}, messageSendingOptions: JMessage.messageSendingOptions },
  (msg) => {
    // do something.

  }, (error) => {
    var code = error.code
    var desc = error.description
  })

参数说明

  • type: 会话类型。可以为 'single' 或 'group'。
  • username: 对方用户的用户名。当 type 为 'single' 时,username 为必填。
  • appKey: 对方用户所属应用的 AppKey。如果不填,默认为当前应用。
  • groupId: 对象群组 id。当 type 为 'group' 时,groupId 为必填。
  • latitude: 纬度。
  • longitude: 经度。
  • scale: 地图缩放比例。
  • address: 详细地址。
  • extras: 自定义键值对,value 必须为字符串类型。
  • messageSendingOptions: 消息发送配置参数(只对 Android 生效)。支持的属性:
    • isShowNotification: 接收方是否针对此次消息发送展示通知栏通知。默认为 true
    • isRetainOffline: 是否让后台在对方不在线时保存这条离线消息,等到对方上线后再推送给对方。默认为 true
    • isCustomNotificationEnabled: 是否开启自定义接收方通知栏功能,设置为 true 后可设置下面的 notificationTitlenotificationText。默认未设置。
    • notificationTitle: 设置此条消息在接收方通知栏所展示通知的标题。
    • notificationText: 设置此条消息在接收方通知栏所展示通知的内容。

sendFileMessage

发送文件消息。对方在收到文件消息时 SDK 不会自动下载,下载文件需手动调用 downloadFile 方法。

示例

JMessage.sendFileMessage({ type: 'single', username: 'username', appKey: 'appKey',
  path: 'file_path', extras: {key1: 'value1'}, messageSendingOptions: JMessage.messageSendingOptions },
  (msg) => {
    // do something.

  }, (error) => {
    var code = error.code
    var desc = error.description
  })

// or

JMessage.sendFileMessage({ type: 'group', groupId: 'target_group_id', path: 'file_path',
  extras: {key1: 'value1'}, messageSendingOptions: JMessage.messageSendingOptions },
  (msg) => {
    // do something.

  }, (error) => {
    var code = error.code
    var desc = error.description
  })

参数说明

  • type: 会话类型。可以为 'single' 或 'group'。
  • username: 对方用户的用户名。当 type 为 'single' 时,username 为必填。
  • appKey: 对方用户所属应用的 AppKey。如果不填,默认为当前应用。
  • groupId: 对象群组 id。当 type 为 'group' 时,groupId 为必填。
  • path: 本地文件的绝对路径。
  • extras: 自定义键值对,value 必须为字符串类型。
  • messageSendingOptions: 消息发送配置参数(只对 Android 生效)。支持的属性:
    • isShowNotification: 接收方是否针对此次消息发送展示通知栏通知。默认为 true
    • isRetainOffline: 是否让后台在对方不在线时保存这条离线消息,等到对方上线后再推送给对方。默认为 true
    • isCustomNotificationEnabled: 是否开启自定义接收方通知栏功能,设置为 true 后可设置下面的 notificationTitlenotificationText。默认未设置。
    • notificationTitle: 设置此条消息在接收方通知栏所展示通知的标题。
    • notificationText: 设置此条消息在接收方通知栏所展示通知的内容。

retractMessage

消息撤回。调用后被撤回方会收到一条 retractMessage 事件。并且双方的消息内容将变为不可见。

示例

JMessage.retractMessage({type: 'single', username: 'username', appKey: 'appKey',
  messageId: 'target_msg_id'},
  () => {
   // do something.

  }, (error) => {
    var code = error.code
    var desc = error.description
  })

参数说明

  • type: 会话类型。可以为 'single' 或 'group'。
  • username: 对方用户的用户名。当 type 为 'single' 时,username 为必填。
  • appKey: 对方用户所属应用的 AppKey。如果不填,默认为当前应用。
  • groupId: 对象群组 id。当 type 为 'group' 时,groupId 为必填。
  • messageId: 要撤回的消息 id。

getHistoryMessages

从最新的消息开始获取历史消息。

示例

JMessage.getHistoryMessages({ type: 'single', username: 'username',
  appKey: 'appKey', from: 0, limit: 10 },
  (msgArr) => { // 以参数形式返回消息对象数组
    // do something.

  }, (error) => {
    var code = error.code
    var desc = error.description
  })

参数说明

  • type: 会话类型。可以为 'single' 或 'group'。
  • username: 对方用户的用户名。当 type 为 'single' 时,username 为必填。
  • appKey: 对方用户所属应用的 AppKey。如果不填,默认为当前应用。
  • groupId: 对象群组 id。当 type 为 'group' 时,groupId 为必填。
  • from: 第一条消息对应的下标,起始为 0。
  • limit: 消息数。当 from = 0 并且 limit = -1 时,返回所有的历史消息。

downloadOriginalImage

下载图片消息原图。如果已经下载,会直接返回本地文件路径,不会重复下载。

示例

JMessage.downloadOriginalImage({ type: 'single', username: 'username',
  messageId: 'target_msg_id' },
  (result) => {
    var msgId = result.messageId
    var imgPath = result.filePath

  }, (error) => {
    var code = error.code
    var desc = error.description
  })

参数说明

  • type: 会话类型。可以为 'single' 或 'group'。
  • username: 对方用户的用户名。当 type 为 'single' 时,username 为必填。
  • appKey: 对方用户所属应用的 AppKey。如果不填,默认为当前应用。
  • groupId: 对象群组 id。当 type 为 'group' 时,groupId 为必填。
  • messageId: 图片消息 id。

downloadVoiceFile

下载语音文件。如果已经下载,会直接返回本地文件路径,不会重复下载。

示例

JMessage.downloadVoiceFile({ type: 'single', username: 'username',
  messageId: 'target_msg_id' },
  (result) => {
    var msgId = result.messageId
    var imgPath = result.filePath

  }, (error) => {
    var code = error.code
    var desc = error.description
  })

参数说明

  • type: 会话类型。可以为 'single' 或 'group'。
  • username: 对方用户的用户名。当 type 为 'single' 时,username 为必填。
  • appKey: 对方用户所属应用的 AppKey。如果不填,默认为当前应用。
  • groupId: 对象群组 id。当 type 为 'group' 时,groupId 为必填。
  • messageId: 语音消息 id。

downloadFile

下载文件。如果已经下载,会直接返回本地文件路径,不会重复下载。

示例

JMessage.downloadFile({ type: 'single', username: 'username',
  messageId: 'target_msg_id' },
  (result) => {
    var msgId = result.messageId
    var imgPath = result.filePath

  }, (error) => {
    var code = error.code
    var desc = error.description
  })

参数说明

  • type: 会话类型。可以为 'single' 或 'group'。
  • username: 对方用户的用户名。当 type 为 'single' 时,username 为必填。
  • appKey: 对方用户所属应用的 AppKey。如果不填,默认为当前应用。
  • groupId: 对象群组 id。当 type 为 'group' 时,groupId 为必填。
  • messageId: 文件消息 id。

sendSingleTransCommand

发送单聊透传命令消息。

透传命令发送的命令后台不会为其离线保存,只会在对方用户在线的前提下将命令推送给对方。对方在收到命令之后也不会本地保存,不发送通知栏通知,整体快速响应。

开发者可以通过命令透传拓展一些在线场景下的辅助功能,如:输入状态提示等。

示例

JMessage.sendSingleTransCommand({ username:'target_username', appKey: '1251231412', message:'hello' },
  () => { // success
    // do something.
  }, (error) => {
    var code = error.code
    var desc = error.description
  })

参数说明

  • username: 对方用户用户名;
  • appKey: 目标用户所属应用的 AppKey。如果不填,则默认为当前应用;
  • message: 透传消息内容。

sendGroupTransCommand

发送群聊透传命令消息。

示例

JMessage.sendGroupTransCommand({ groupId:'12512314', message:'hello' },
  () => { // success
    // do something.
  }, (error) => {
    var code = error.code
    var desc = error.description
  })

参数说明

  • groupId: 目标群组 Id。
  • message: 透传消息内容。

会话

createConversation

创建聊天会话

示例

JMessage.createConversation({ type: 'single', username: 'username', appKey: 'appKey' },
  (conversation) => {
    // do something.

  }, (error) => {
    var code = error.code
    var desc = error.description
  })

参数说明

  • type: 会话类型。可以为 'single' 或 'group'。
  • username: 对方用户的用户名。当 type 为 'single' 时,username 为必填。
  • appKey: 对方用户所属应用的 AppKey。如果不填,默认为当前应用。
  • groupId: 对象群组 id。当 type 为 'group' 时,groupId 为必填。

deleteConversation

删除聊天会话,同时也会删除本地聊天记录。

示例

JMessage.deleteConversation({ type: 'single', username: 'username', appKey: 'appKey' },
  (conversation) => {
    // do something.

  }, (error) => {
    var code = error.code
    var desc = error.description
 )

参数说明

  • type: 会话类型。可以为 'single' 或 'group'。
  • username: 对方用户的用户名。当 type 为 'single' 时,username 为必填。
  • appKey: 对方用户所属应用的 AppKey。如果不填,默认为当前应用。
  • groupId: 对象群组 id。当 type 为 'group' 时,groupId 为必填。

enterConversation

(Android only) 进入聊天会话。当调用后,该聊天会话的消息将不再显示通知。

iOS 默认应用在前台时,就不会显示通知。

示例

JMessage.enterConversation({ type: 'single', username: 'username', appKey: 'appKey' },
  (conversation) => {
    // do something.

  }, (error) => {
    var code = error.code
    var desc = error.description
 )

参数说明

  • type: 会话类型。可以为 'single' 或 'group'。
  • username: 对方用户的用户名。当 type 为 'single' 时,username 为必填。
  • appKey: 对方用户所属应用的 AppKey。如果不填,默认为当前应用。
  • groupId: 对象群组 id。当 type 为 'group' 时,groupId 为必填。

exitConversation

(Android only) 退出聊天会话。调用后,聊天会话之后的相关消息通知将会被触发。

示例

JMessage.exitConversation({ type: 'single', username: 'username', appKey: 'appKey' },
  (conversation) => {
    // do something.

  }, (error) => {
    var code = error.code
    var desc = error.description
 )

参数说明

  • type: 会话类型。可以为 'single' 或 'group'。
  • username: 对方用户的用户名。当 type 为 'single' 时,username 为必填。
  • appKey: 对方用户所属应用的 AppKey。如果不填,默认为当前应用。
  • groupId: 对象群组 id。当 type 为 'group' 时,groupId 为必填。

getConversation

获取聊天会话对象

示例

JMessage.getConversation({ type: 'single', username: 'username', appKey: 'appKey' },
  (conversation) => {
    // do something.

  }, (error) => {
    var code = error.code
    var desc = error.description
 )

参数说明

  • type: 会话类型。可以为 'single' 或 'group'。
  • username: 对方用户的用户名。当 type 为 'single' 时,username 为必填。
  • appKey: 对方用户所属应用的 AppKey。如果不填,默认为当前应用。
  • groupId: 对象群组 id。当 type 为 'group' 时,groupId 为必填。

getConversations

从本地数据库获取会话列表。默认按照会话的最后一条消息时间降序排列。

示例

JMessage.getConversations((conArr) => { // conArr: 会话数组。
  // do something.

}, (error) => {
    var code = error.code
    var desc = error.description
})

resetUnreadMessageCount

重置会话的未读消息数。

示例

JMessage.resetUnreadMessageCount({ type: 'single', username: 'username', appKey: 'appKey' },
  (conversation) => {
    // do something.

  }, (error) => {
    var code = error.code
    var desc = error.description
 )

参数说明

  • type: 会话类型。可以为 'single' 或 'group'。
  • username: 对方用户的用户名。当 type 为 'single' 时,username 为必填。
  • appKey: 对方用户所属应用的 AppKey。如果不填,默认为当前应用。
  • groupId: 对象群组 id。当 type 为 'group' 时,groupId 为必填。

好友

JMessage SDK 本身是属于无好友模式,即 JMessage 中的任意两个用户不需要建立好友关系也能聊天。JMessage 仅提供好友关系的托管,以及相关好友请求的发送与接收。

除此之外更多基于好友关系之上的功能,比如仅允许好友间聊天需要开发者自行实现。

sendInvitationRequest

发送添加好友请求,调用后对方会收到 contactNotify 事件。

示例

JMessage.sendInvitationRequest({ username: 'username', appKey: 'appKey', reason: '请求添加好友'},
  () => {
    // do something.

  }, (error) => {
    var code = error.code
    var desc = error.description
  })

参数说明

  • username: 对方用户的用户名。
  • appKey: 对方用户所属应用的 AppKey,如果为空或不填则默认为当前应用。
  • reason: 申请理由。

acceptInvitation

接受申请好友请求,调用后对方会收到 contactNotify 事件。

示例

JMessage.acceptInvitation({ username: 'username', appKey: 'appKey' },
  () => {
    // do something.

  }, (error) => {
    var code = error.code
    var desc = error.description
  })

参数说明

  • username: 申请发送用户的用户名。
  • appKey: 申请发送用户所在应用的 AppKey,为空或不填则默认为当前用户。

declineInvitation

拒绝申请好友请求,调用成功后对方会收到 contactNotify 事件。

示例

JMessage.declineInvitation({ username: 'username', appKey: 'appKey', reason: '拒绝理由' },
  () => {
    // do something.

  }, (error) => {
    var code = error.code
    var desc = error.description
  })

参数说明

  • username: 申请发送用户的用户名。
  • appKey: 申请发送用户所在应用的 AppKey,为空或不填则默认为当前用户。
  • reason: 拒绝理由。长度要求为 0 ~ 250 Byte。

getFriends

获取好友列表。

示例

JMessage.getFriends((friendArr) => {  // 好友用户对象数组。
  // do something.

}, (error) => {
    var code = error.code
    var desc = error.description
})

removeFromFriendList

删除好友,调用成功后对方会收到 contactNotify 事件。

示例

JMessage.removeFromFriendList({ username: 'username', appKey: 'appKey' },
  () => {
    // do something.

  }, (error) => {
    var code = error.code
    var desc = error.description
  })

updateFriendNoteName

更新好友备注名。

示例

JMessage.updateFriendNoteName({ username: 'username', appKey: 'appKey', noteName: 'noteName' },
  () => {
    // do something.

  }, (error) => {
    var code = error.code
    var desc = error.description
  })

参数说明

  • username: 好友的用户名。
  • appKey: 好友所属应用的 AppKey,如果为空或不填默认为当前应用。
  • noteName: 备注名。不支持 "\n" 和 "\r" 字符,长度要求为 0 ~ 64 Byte。

updateFriendNoteText

更新用户备注信息。

示例

JMessage.updateFriendNoteText({ username: 'username', appKey: 'appKey', noteText: 'noteName' },
  () => {
    // do something.

  }, (error) => {
    var code = error.code
    var desc = error.description
 )

参数说明

  • username: 好友的用户名。
  • appKey: 好友所属应用的 AppKey,如果为空或不填默认为当前应用。
  • noteText: 备注名。长度要求为 0 ~ 250 Byte。

黑名单

当用户被加入到黑名单后,我方依旧能给对方发消息,但当对方给我们发消息时会返回指定错误码,提示发送消息失败。

addUsersToBlacklist

批量加入用户到黑名单。

示例

JMessage.addUsersToBlacklist({ usernameArray: ['user1', 'user2'], appKey: 'appKey' },
  () => {
    // do something.

  }, (error) => {
    var code = error.code
    var desc = error.description
  })

参数说明

  • usernameArray: 待添加的用户名数组。
  • appKey: 待添加用户所属应用的 AppKey,如果为空或不填,默认为当前应用。

removeUsersFromBlacklist

批量将用户从黑名单中移除。

示例

JMessage.removeUsersFromBlacklist({ usernameArray: ['user1', 'user2'], appKey: 'appKey' },
  () => {
    // do something.

  }, (error) => {
    var code = error.code
    var desc = error.description
 )

参数说明

  • usernameArray: 待添加的用户名数组。
  • appKey: 待添加用户所属应用的 AppKey,如果为空或不填,默认为当前应用。

getBlacklist

获取被当前用户加入黑名单的用户列表。

示例

JMessage.getBlacklist((userArray) => {
  // do something.

}, (error) => {
  var code = error.code
  var desc = error.description
})

返回值说明

  • userArray: 在黑名单中用户的 UserInfo 数组。

免打扰

当设置免打扰后 SDK 不会弹出默认的通知提示,但消息事件照常触发。

setNoDisturb

设置对某个用户或群组是否免打扰。

示例

JMessage.setNoDisturb({ type: 'single', username: 'username', isNoDisturb: true },
  () => {
    // do something.

  }, (error) => {
    var code = error.code
    var desc = error.description
  })

参数说明

  • type: 'single' / 'group',指明是用户还是群组。
  • username: 用户名。当 type 为 'single' 时必填。
  • appKey: 用户所在应用的 appKey,如果为空或不填,默认为当前应用。
  • groupId: 群组 id。当 type 为 'group' 时必填。
  • isNoDisturb: true / false

setNoDisturbGlobal

设置全局免打扰。

示例

JMessage.setNoDisturbGlobal({ isNoDisturb: true },
  () => {
    // do something.

  }, (error) => {
    var code = error.code
    var desc = error.description
  })

参数说明

  • isNoDisturb: boolean 类型。true: 开启免打扰;false: 关闭免打扰。

isNoDisturbGlobal

判断当前是否开启了全局免打扰。

示例

JMessage.isNoDisturbGlobal((result) => {
  var isNoDisturb = result.isNoDisturb

}, (error) => {
  var code = error.code
  var desc = error.description
})

返回值说明

  • result:
    • isNoDisturb: 是否开启全局免打扰。

getNoDisturbList

获取免打扰列表。

示例

JMessage.getNoDisturbList((result) => {
  var userInfoArr = result.userInfoArray
  var groupInfoArr = result.groupInfoArray

}, (error) => {
  var code = error.code
  var desc = error.description
})

返回值说明

  • result:
    • userInfoArray: 处于免打扰状态的用户信息列表;
    • groupInfoArray: 处于免打扰状态的群组信息列表。

事件监听

事件监听相关方法可参考 Events

Clone this wiki locally