- Qida Im
- login
- logout
- addAccountListener
- addMessagesListener
- addMessagesListenerForAndroid
- addSessionListener
- addContactsListener
- addGroupListener
- getUserByUserID
- getDeptByID
- getUserOrgByUserID
- sendText
- sendImage
- sendLocation
- sendVoice
- sendVideo
- sendFile
- deleteAllmessagesInSession
- markAllMessagesReadInSession
- getSessionMessages
- getRecentSessionList
- getRecentSessionListForAndroid
- getContactsListCompletion
- addContactsWithUser
- modifyContantsNicknameWithUserID
- deleteContactsWithUserID
- getGroupList
- getGroupByGroupID
- createGroup
- inviteGroupMembersForGroupID
- quitGroupForGroupID
- removeGroupMembersForGroupID
- dissolveGroupForGroupID
- modifyGroupNameForGroupID
- modifyGroupAvatarForGroupID
- modifyGroupIntroForGroupID
- modifyGroupNicknameForGroupID
- transferGroupOwnerForGroupID
- setGroupManagerForGroupID
- setGroupMsgShieldForGroupID
- setGroupShutupForGroupID
- openSession
- openContact
- openMine
- closeView
- configureUI
- 附录
Qida Im
/ Title: qidaIM Description: qidaIM /
登录、退出、监听
login logout addAccountListener addMessagesListener addMessagesListenerForAndroid addSessionListener addContactsListener addGroupListener
企业通讯录
getUserByUserID getDeptByID getUserOrgByUserID
消息、会话
sendText sendImage sendLocation sendVoice sendVideo sendFile deleteAllmessagesInSession markAllMessagesReadInSession getSessionMessages getRecentSessionList getRecentSessionListForAndroid
好友
getContactsListCompletion addContactsWithUser modifyContantsNicknameWithUserID deleteContactsWithUserID
群组
getGroupList getGroupByGroupID createGroup inviteGroupMembersForGroupID quitGroupForGroupID removeGroupMembersForGroupID dissolveGroupForGroupID modifyGroupNameForGroupID modifyGroupAvatarForGroupID modifyGroupIntroForGroupID modifyGroupNicknameForGroupID transferGroupOwnerForGroupID setGroupManagerForGroupID setGroupMsgShieldForGroupID setGroupShutupForGroupID
带UI的页面
openSession openContact openMine closeView configureUI
附录
附录 用户信息 部门信息 会话信息 群组信息 消息内容 消息体内容 消息体-图片 消息体-视频 消息体-位置 消息体-语音 消息体-文件
企达即时通讯云
全新的通信协议:全新的基于消息同步的私有协议,在不稳定网络环境下更稳定更省流量,确保消息投递的可靠、顺序以及实时性,并具有更高的安全性。同时提供了更好的扩展性,将支持更多的对接和设备同步场景。 全新的 SDK:全面重构,将核心通信模块做了更好的封装;简化了接口,结构更清晰,集成更容易;提升了登录速度和弱网络环境下的可靠性。
模块概览
封装了企达即时通讯云SDK,具有功能性和UI接口,实现敏捷开发。
使用此模块之前必须先配置 config 文件,ios配置方法如下:
- 名称:qidaIM
- 参数:
- 配置示例:
<feature name="qidaIM">
<param name="serverIp" value="" />
<param name="serverPort" value="" />
<param name="mapKey" value="" />
<param name="umKey" value="" />
<param name="wxKey" value="" />
<param name="wxSecret" value="" />
<param name="redirectURL" value="" />
</feature>
字段描述:
serverIp:ip地址
serverPort:端口号
mapKey:高德地图APIkey
umKey:友盟appkey
wxKey:微信平台的appKey
wxSecret:微信平台的appSecret
redirectURL:分享url
Android 方法配置如下
<!-- 百度地图 -->
<meta-data name="com.baidu.lbsapi.API_KEY" value="" />
<!-- 华为推送 -->
<meta-data name="com.huawei.hms.client.appid" value=""/>
<!-- 高德地图 -->
<meta-data name="com.amap.api.v2.apikey" value=""/>
login
登录
login({params},callback(ret, err))
params
username:
- 类型:字符串
- 描述:用户名
password:
- 类型:字符串
- 描述:密码
callback(ret, err)
ret:
- 类型:JSON 对象
- 描述:登录结果
- 内部字段:
{
status: true //布尔类型;是否登录成功,true|false
}
err:
- 类型:JSON 对象
- 描述:登录结果
- 内部字段:
{
code: 1, //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var qidaIM = api.require('qidaIM');
qidaIM.login({
username: '',
password: '',
},function(ret, err) {
if (ret.status) {
api.alert({ msg:'登录成功'});
} else {
api.alert({ msg:JSON.stringify(err)});
}
});
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
logout
退出登录
退出登录分两种类型:主动退出登录和被动退出登录。
- 主动退出登录:调用模块的退出接口;
- 被动退出登录:1. 被另外一个客户端踢下线 (互斥客户端一端登录挤掉上一个登录中的客户端);2. 被服务器踢下线;3.被另外一个客户端手动选择踢下线。可通过 addAccountListener 接口监听。
在被动退出时模块内部处理,不需要调用本接口。
logout(callback(ret, err))
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true //布尔类型;是否成功退出登录,true|false
}
err:
- 类型:JSON 对象
- 描述:退出登录失败结果
- 内部字段:
{
code: 1, //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var qidaIM = api.require('qidaIM');
qidaIM.logout(function(ret, err) {
if (ret.status) {
api.alert({ msg:'登录成功'});
} else {
api.alert({ msg:JSON.stringify(err)});
}
});
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
addAccountListener
账号事件的监听
addAccountListener(callback(ret))
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
eventType: 'onLogin', //字符串类型;监听的事件类型,取值范围如下:
//onLogin:登录步骤
//onKick:被踢
//onLoginOut:在UI页面点击退出登陆按钮主动退出
//onFetchGroup 获取群组 (该参数仅支持android)
//onFetchFriend 获取好友信息(该参数仅支持android)
//onLoadingDept 加载部门组织架构(该参数仅支持android)
//onLoadingUserInfo 加载用户信息(该参数仅支持android)
//onLostConnect 网络断开(该参数仅支持android)
//onComplete 登录完成(该参数仅支持android)
//onLoginOut 退出登录(该参数仅支持android)
//onForceOut 强制退出(该参数仅支持android)
step:0, //登录步骤;eventType==onLogin时返回 (该参数仅支持ios)
//取值如下:
//1:连接服务器
//2:连接服务器成功
//3:连接服务器失败
//4:登录
//5:登录成功
//6:登录失败
//7:开始同步
//8:同步完成
//9:连接断开
//10:网络切换(这个并不是登录步骤的一种,但是UI有可能需要通过这个状态进行UI展现)
reason:0 //被踢下线的原因;eventType== onKick时返回 (该参数仅支持ios)
//取值如下:
//1:被另外一个客户端踢下线 (互斥客户端一端登录挤掉上一个登录中的客户端)
//2:被服务器踢下线
//3:被另外一个客户端手动选择踢下线
}
示例代码
var qidaIM = api.require('qidaIM');
qidaIM.addAccountListener(function(ret) {
api.alert({ msg:ret.eventType});
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
addMessagesListener
添加消息相关监听(该接口仅支持ios)
addMessagesListener(callback(ret))
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
eventType: 'onRecvMessages', //字符串类型;监听的事件类型,取值范围如下:
//onRecvMessages:收到消息
//onRecvReceiptsMessage:收到消息回执
//fetchMessageAttachment:收取消息附件
//fetchMessageAttachmentComplete:收取消息附件完成
//onRecvRevokeMessage:消息被撤回
//onRecvConfirmedMessage:确认签收消息
//willSendMessage:即将发送消息回调
//sendMessageProgress:当前发送的消息
//sendMessageDidComplete:发送消息完成回调
onRecvMessages:{ //eventType == onRecvMessages时返回此参数
messages:[] //消息的json数组对象;消息详情参考附录:消息内容
},
onRecvReceiptsMessage:{ //eventType == onRecvReceiptsMessage时返回此参数
message:{}, //消息的json对象;消息详情参考附录:消息内容
},
fetchMessageAttachment:{ //eventType == fetchMessageAttachment时返回此参数
message:{}, //消息的json对象;消息详情参考附录:消息内容
progress:0 //数字类型;进度
},
fetchMessageAttachmentComplete:{ //eventType == fetchMessageAttachmentComplete时返回此参数
messages:{}, //消息的json对象;消息详情参考附录:消息内容
error:{ //json对象;错误消息,下载出错时返回,如果收取成功,error不返回
code: 1, //数字类型;错误码
msg: '' //字符串类型;错误信息
}
},
onRecvRevokeMessage:{ //eventType == onRecvRevokeMessage时返回此参数
fromUserId:'', //字符类型;撤回消息发起者
messageFromUserId:'', //字符类型;消息的发送者,表示撤回的这条消息是谁发的
timestamp:0, //数字类型;撤回消息时间点,这里的时间点指的是被撤回的那条消息到底服务器的时间,而不是撤回指令到达服务器的时间点
session:{}, //会话的json对象;撤回消息所属会话;会话详情参考附录:会话信息
message:{}, //消息的json对象;撤回消息内容;消息详情参考附录:消息内容
},
onRecvConfirmedMessage:{ //eventType == onRecvConfirmedMessage时返回此参数
timestamp:0, //数字类型;签收消息时间点,这里的时间点指的是被撤回的那条消息到底服务器的时间,而不是撤回指令到达服务器的时间点
session:{}, //会话的json对象;签收消息所属会话;会话详情参考附录:会话信息
message:{}, //消息的json对象;签收消息内容;当撤回消息未被当前设备接收时,这个字段返回空;消息详情参考附录:消息内容
},
willSendMessage:{ //eventType == willSendMessage时返回此参数
message:{} //消息的json对象;消息详情参考附录:消息内容
},
sendMessageProgress:{ //eventType == sendMessageProgress时返回此参数
message:{}, //消息的json对象;消息详情参考附录:消息内容
progress:0 //数字类型;进度
},
sendMessageDidComplete:{ //eventType == sendMessageDidComplete时返回此参数
message:{}, //消息的json对象;消息详情参考附录:消息内容
error:{ //json对象;错误消息,出错时返回,如果成功,error不返回
code: 1, //数字类型;错误码
msg: '' //字符串类型;错误信息
}
}
}
示例代码
var qidaIM = api.require('qidaIM');
qidaIM.addMessagesListener(function(ret) {
api.alert({ msg:ret.eventType});
});
可用性
iOS系统
可提供的1.0.0及更高版本
addMessagesListenerForAndroid
添加消息相关监听(该接口仅支持android)
addMessagesListenerForAndroid(callback(ret))
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
eventType: 'onReceive', //字符串类型;监听的事件类型,取值范围如下
// onReceive 个人消息接收
// onReceiveGMsg 群组消息接收
// onMsgReaded 消息设置已读
// onRevokeMessage 撤回消息返回
msg:[], // JSON数组;消息数组
userId:'', // 字符串类型,当eventType == onMsgReaded 会返回
groupId:'', // 字符串类型,当eventType == onReceiveGMsg 会返回
msgId:'', // 字符串类型,当eventType == onRevokeMessage 会返回
errorMsg:'' // 字符串类型,当eventType == onRevokeMessage 会返回
}
示例代码
var qidaIM = api.require('qidaIM');
qidaIM.addMessagesListenerForAndroid(function(ret) {
api.alert({ msg:ret.eventType});
});
可用性
Android系统
可提供的1.0.0及更高版本
addSessionListener
添加会话相关监听(仅支持ios)
addSessionListener(callback(ret))
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
eventType: 'didAddRecentSession', //字符串类型;监听的事件类型,取值范围如下:
//didAddRecentSession:增加某个会话的所有消息
//didUpdateRecentSession:最近会话修改的回调
//didRemoveRecentSession:删除最近会话的回调
//messagesDeletedInSession:单个会话里所有消息被删除的回调
//allMessagesDeleted:所有消息被删除的回调;此回掉不会返回任何其他信息
session:{}, //会话的json对象;eventType == messagesDeletedInSession时返回;会话详情参考附录:会话信息
recentSession:{ //最近会话的json对象;eventType == messagesDeletedInSession、allMessagesDeleted时不返回,其他返回;
session:{}, //会话的json对象;会话详情参考附录:会话信息
lastMessage:{}, //最后一条消息的json对象;消息详情参考附录:消息内容
unreadCount:'', //数字类型;未读消息数
localExt:{} //json对象;本地扩展
},
totalUnreadCount:0 //数字类型;目前总未读数;eventType == messagesDeletedInSession、allMessagesDeleted时不返回,其他返回;
}
示例代码
var qidaIM = api.require('qidaIM');
qidaIM.addSessionListener(function(ret) {
api.alert({ msg:ret.eventType});
});
可用性
iOS系统
可提供的1.0.0及更高版本
addContactsListener
添加好友相关监听(仅支持ios)
addContactsListener(callback(ret))
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
eventType: 'onAddContacts', //字符串类型;监听的事件类型,取值范围如下:
//onAddContacts:添加好友
//onAddContactsList:添加多个好友
//onRemoveContacts:删除好友
user:{}, //用户的json对象;eventType == onAddContacts、onRemoveContacts时返回;用户详情参考附录:用户信息
users:[{}], //用户的json数组对象;eventType == onAddContactsList时返回;用户详情参考附录:用户信息
}
示例代码
var qidaIM = api.require('qidaIM');
qidaIM.addContactsListener(function(ret) {
api.alert({ msg:ret.eventType});
});
可用性
iOS系统
可提供的1.0.0及更高版本
addGroupListener
添加群组相关监听(仅支持ios)
addGroupListener(callback(ret))
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
eventType: 'onGroupAdded', //字符串类型;监听的事件类型,取值范围如下:
//onGroupAdded:群组增加
//onGroupUpdated:群组更新
//onGroupRemoved:群组移除
//onGroupMemeberChanged:群组成员变动
//onGroupOwnerDestoryMessage:群主销毁消息
group:{}, //用户的json对象;用户详情参考附录:用户信息
message:{} //消息的json对象;eventType == onGroupOwnerDestoryMessage时返回;消息详情参考附录:消息内容
}
示例代码
var qidaIM = api.require('qidaIM');
qidaIM.addGroupListener(function(ret) {
api.alert({ msg:ret.eventType});
});
可用性
iOS系统
可提供的1.0.0及更高版本
getUserByUserID
根据人员id获取人员信息
getUserByUserID({params},callback(ret))
params
userId:
- 类型:字符串
- 描述:人员id
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
user:{}, //用户的json对象;用户详情参考附录:用户信息
}
示例代码
var qidaIM = api.require('qidaIM');
qidaIM.getUserByUserID({
userId:'123'
},function(ret) {
api.alert({ msg:JSON.stringify(ret)});
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
getDeptByID
根据子ID获取部门
getDeptByID({params},callback(ret))
params
deptId:
- 类型:字符串
- 描述:部门ID
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
dept:{}, //部门的json对象;部门详情参考附录:部门信息
}
示例代码
var qidaIM = api.require('qidaIM');
qidaIM.getDeptByID({
deptId:'123'
},function(ret) {
api.alert({ msg:JSON.stringify(ret)});
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
getUserOrgByUserID
获取用户所在组织 (仅支持ios)
getUserOrgByUserID({params},callback(ret))
params
userId:
- 类型:字符串
- 描述:用户ID
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
depts:[{}], //部门的json对象;部门详情参考附录:部门信息
}
示例代码
var qidaIM = api.require('qidaIM');
qidaIM.getUserOrgByUserID({
userId:'123'
},function(ret) {
api.alert({ msg:JSON.stringify(ret)});
});
可用性
iOS系统
可提供的1.0.0及更高版本
sendText
发送文本消息
sendText({params},callback(ret,err))
params
sessionId:
- 类型:字符串
- 描述:会话ID,如果当前session为group, 则sessionId为groupId,如果是P2P则为对方帐号
chatType:
- 类型:数字
- 描述:(可选项)要发送消息的会话类型
- 默认:0
- 取值范围:
- 0:单聊会话
- 1:群组会话
- 2:群发会话
- 3:应用会话
- 4:系统通知
text:
- 类型:字符串
- 描述:发送的消息
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;是否发送成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var qidaIM = api.require('qidaIM');
qidaIM.sendText({
sessionId: '',
chatType: 0,
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
sendImage
发送图片消息(仅支持ios,android可调用sendFile接口)
sendImage({params},callback(ret,err))
params
sessionId:
- 类型:字符串
- 描述:会话ID,如果当前session为group, 则sessionId为groupId,如果是P2P则为对方帐号
chatType:
- 类型:数字
- 描述:(可选项)要发送消息的会话类型
- 默认:0
- 取值范围:
- 0:单聊会话
- 1:群组会话
- 2:群发会话
- 3:应用会话
- 4:系统通知
path:
- 类型:字符串
- 描述:要发送的图片的路径,要求本地路径(fs://、widget://)(android只支持fs)
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;是否发送成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var qidaIM = api.require('qidaIM');
qidaIM.sendImage({
sessionId: '',
chatType: 'chat',
path: 'widget://res/abc.png',
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
sendLocation
发送位置消息
sendLocation({params},callback(ret,err))
params
sessionId:
- 类型:字符串
- 描述:会话ID,如果当前session为group, 则sessionId为groupId,如果是P2P则为对方帐号
chatType:
- 类型:数字
- 描述:(可选项)要发送消息的会话类型
- 默认:0
- 取值范围:
- 0:单聊会话
- 1:群组会话
- 2:群发会话
- 3:应用会话
- 4:系统通知
title:
- 类型:字符串
- 描述:(可选项)标题
info:
- 类型:字符串
- 描述:(可选项)信息
latitude:
- 类型:数字
- 描述:纬度
longitude:
- 类型:数字
- 描述:经度
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;是否发送成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var qidaIM = api.require('qidaIM');
qidaIM.sendLocation({
sessionId: '',
chatType:0,
latitude: ,
longitude: ,
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
sendVoice
发送声音消息 (仅支持ios,android可调用sendFile接口)
sendVoice({params},callback(ret,err))
params
sessionId:
- 类型:字符串
- 描述:会话ID,如果当前session为group, 则sessionId为groupId,如果是P2P则为对方帐号
chatType:
- 类型:数字
- 描述:(可选项)要发送消息的会话类型
- 默认:0
- 取值范围:
- 0:单聊会话
- 1:群组会话
- 2:群发会话
- 3:应用会话
- 4:系统通知
path:
- 类型:字符串
- 描述:要发送的音频的路径,要求本地路径(fs://、widget://)(android只支持fs)
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;是否发送成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var qidaIM = api.require('qidaIM');
qidaIM.sendVoice({
sessionId: '',
chatType:0,
path: ''
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
sendVideo
发送视频消息 (仅支持ios,android可调用sendFile接口)
sendVideo({params},callback(ret,err))
params
sessionId:
- 类型:字符串
- 描述:会话ID,如果当前session为group, 则sessionId为groupId,如果是P2P则为对方帐号
chatType:
- 类型:数字
- 描述:(可选项)要发送消息的会话类型
- 默认:0
- 取值范围:
- 0:单聊会话
- 1:群组会话
- 2:群发会话
- 3:应用会话
- 4:系统通知
path:
- 类型:字符串
- 描述:要发送的视频的路径,要求本地路径(fs://、widget://)(android只支持fs)
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;是否发送成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var qidaIM = api.require('qidaIM');
qidaIM.sendVideo({
sessionId: '',
chatType:0,
path: ''
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
sendFile
发送文件消息
sendFile({params},callback(ret,err))
params
sessionId:
- 类型:字符串
- 描述:会话ID,如果当前session为group, 则sessionId为groupId,如果是P2P则为对方帐号
chatType:
- 类型:数字
- 描述:(可选项)要发送消息的会话类型
- 默认:0
- 取值范围:
- 0:单聊会话
- 1:群组会话
- 2:群发会话
- 3:应用会话
- 4:系统通知
path:
- 类型:字符串
- 描述:要发送的文件的路径,要求本地路径(fs://、widget://)(android只支持fs)
type:
- 类型:数字类型
- 描述:文件类型
- 默认:0
- 取值:
- 0 文件
- 1 语音
- 2 视频
- 3 语音
- 4 图片
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;是否发送成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var qidaIM = api.require('qidaIM');
qidaIM.sendFile({
sessionId: '',
chatType:0,
path: ''
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
deleteAllmessagesInSession
删除某个会话的所有消息
deleteAllmessagesInSession({params}))
params
sessionId:
- 类型:字符串
- 描述:会话ID,如果当前session为group, 则sessionId为groupId,如果是P2P则为对方帐号
chatType:
- 类型:数字
- 描述:(可选项)要发送消息的会话类型
- 默认:0
- 取值范围:
- 0:单聊会话
- 1:群组会话
- 2:群发会话
- 3:应用会话
- 4:系统通知
示例代码
var qidaIM = api.require('qidaIM');
qidaIM.deleteAllmessagesInSession({
sessionId: '',
chatType:0,
});
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
markAllMessagesReadInSession
设置一个会话里所有消息置为已读 (仅支持ios)
markAllMessagesReadInSession({params}))
params
sessionId:
- 类型:字符串
- 描述:会话ID,如果当前session为group, 则sessionId为groupId,如果是P2P则为对方帐号
chatType:
- 类型:数字
- 描述:(可选项)要发送消息的会话类型
- 默认:0
- 取值范围:
- 0:单聊会话
- 1:群组会话
- 2:群发会话
- 3:应用会话
- 4:系统通知
示例代码
var qidaIM = api.require('qidaIM');
qidaIM.markAllMessagesReadInSession({
sessionId: '',
chatType:0,
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
getSessionMessages
得到会话所有消息
getSessionMessages({params},callback(ret))
params
sessionId:
- 类型:字符串
- 描述:会话ID,如果当前session为group, 则sessionId为groupId,如果是P2P则为对方帐号
chatType:
- 类型:数字
- 描述:(可选项)要发送消息的会话类型
- 默认:0
- 取值范围:
- 0:单聊会话
- 1:群组会话
- 2:群发会话
- 3:应用会话
- 4:系统通知
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
messages:[] //消息的json数组对象;消息详情参考附录:消息内容
}
示例代码
var qidaIM = api.require('qidaIM');
qidaIM.getSessionMessages({
sessionId: '',
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
getRecentSessionList
获取最近会话列表 (仅支持ios)
getRecentSessionList(callback(ret))
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
recentSessions:[{ //最近会话的json数组对象;
session:{}, //会话的json对象;会话详情参考附录:会话信息
lastMessage:{}, //最后一条消息的json对象;消息详情参考附录:消息内容
unreadCount:'', //数字类型;未读消息数
localExt:{} //json对象;本地扩展
}],
}
示例代码
var qidaIM = api.require('qidaIM');
qidaIM.getRecentSessionList(function(ret) {
api.alert({ msg:JSON.stringify(ret)});
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
getRecentSessionListForAndroid
获取最近会话列表 (仅支持android)
getRecentSessionList(callback(ret))
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
conversations:[{
id:'',
name:'',
subname:'',
icon:'',
time:'',
type:'',
isTop:'',
extData:'',
extData1:''
}],
}
示例代码
var qidaIM = api.require('qidaIM');
qidaIM.getRecentSessionListForAndroid(function(ret) {
api.alert({ msg:JSON.stringify(ret)});
});
可用性
Android系统
可提供的 1.0.0 及更高版本
getContactsListCompletion
从服务端获取联系人列表 (仅支持ios)
getContactsListCompletion(callback(ret,err))
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;是否成功,true|false
users:[{}], //用户的json数组对象;用户详情参考附录:用户信息
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var qidaIM = api.require('qidaIM');
qidaIM.getContactsListCompletion(function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
addContactsWithUser
添加联系人 (仅支持ios)
addContactsWithUser({params},callback(ret,err))
params
userId:
- 类型:字符串
- 描述:联系人ID
nickname:
- 类型:字符串
- 描述:(可选项)被添加用户昵称
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;是否成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var qidaIM = api.require('qidaIM');
qidaIM.addContactsWithUser({
userId: '',
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
modifyContantsNicknameWithUserID
修改联系人昵称 (仅支持ios)
modifyContantsNicknameWithUserID({params},callback(ret,err))
params
userId:
- 类型:字符串
- 描述:联系人ID
nickname:
- 类型:字符串
- 描述:(可选项)被添加用户昵称
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;是否成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var qidaIM = api.require('qidaIM');
qidaIM.modifyContantsNicknameWithUserID({
userId: '',
nickname: ''
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
deleteContactsWithUserID
删除联系人 (仅支持ios)
deleteContactsWithUserID({params},callback(ret,err))
params
userId:
- 类型:字符串
- 描述:联系人ID
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;是否成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var qidaIM = api.require('qidaIM');
qidaIM.deleteContactsWithUserID({
userId: '',
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
getGroupList
获取群组列表
getGroupList(callback(ret))
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
groups:[{}], //群组的json数组对象;群组详情参考附录:群组信息
}
示例代码
var qidaIM = api.require('qidaIM');
qidaIM.getGroupList(function(ret) {
api.alert({ msg:JSON.stringify(ret)});
});
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
getGroupByGroupID
根据群组ID获取群组
getGroupByGroupID({params},callback(ret,err))
params
groupId:
- 类型:字符串
- 描述:群组ID
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
group:{}, //群组的json对象;群组详情参考附录:群组信息
}
示例代码
var qidaIM = api.require('qidaIM');
qidaIM.getGroupByGroupID({
groupId: '',
},function(ret) {
api.alert({ msg:JSON.stringify(ret)})
});
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
createGroup
创建群组
createGroup({params},callback(ret,err))
params
groupName:
- 类型:字符串
- 描述:群组名称
userList:
- 类型:数组
- 描述:用户数组
- 示例:[‘123’,’321’]
pic:
- 类型:字符串
- 描述:(可选项)用户的ID数组
desc:
- 类型:字符串
- 描述:(可选项)群组描述
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;是否成功,true|false
group:{}, //群组的json对象;群组详情参考附录:群组信息
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var qidaIM = api.require('qidaIM');
qidaIM.createGroup({
groupName: '',
userList :[]
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
inviteGroupMembersForGroupID
群组邀请
inviteGroupMembersForGroupID({params},callback(ret,err))
params
groupID:
- 类型:字符串
- 描述:群组ID
userList:
- 类型:数组
- 描述:邀请用户列表
- 示例:[‘123’,’321’]
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;是否成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var qidaIM = api.require('qidaIM');
qidaIM.inviteGroupMembersForGroupID({
groupID: '',
userList :[]
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
quitGroupForGroupID
退出群组 (注意:android群主如果调用该方法会解散该群)
quitGroupForGroupID({params},callback(ret,err))
params
groupID:
- 类型:字符串
- 描述:群组ID
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;是否成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var qidaIM = api.require('qidaIM');
qidaIM.quitGroupForGroupID({
groupID: ''
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
removeGroupMembersForGroupID
群组踢人
removeGroupMembersForGroupID({params},callback(ret,err))
params
groupID:
- 类型:字符串
- 描述:群组ID
userList:
- 类型:数组
- 描述:用户列表
- 示例:[‘123’,’321’]
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;是否成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var qidaIM = api.require('qidaIM');
qidaIM.removeGroupMembersForGroupID({
groupID: '',
userList :[]
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
dissolveGroupForGroupID
解散群组 (该方法仅支持ios, android解散群组需要群主调用quitGroupForGroupID即可)
dissolveGroupForGroupID({params},callback(ret,err))
params
groupID:
- 类型:字符串
- 描述:群组ID
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;是否成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var qidaIM = api.require('qidaIM');
qidaIM.dissolveGroupForGroupID({
groupID: ''
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
modifyGroupNameForGroupID
修改群组名称
modifyGroupNameForGroupID({params},callback(ret,err))
params
groupID:
- 类型:字符串
- 描述:群组ID
groupName:
- 类型:字符串
- 描述:新的群组名称
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;是否成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var qidaIM = api.require('qidaIM');
qidaIM.modifyGroupNameForGroupID({
groupID: '',
groupName:''
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
modifyGroupAvatarForGroupID
修改群组头像
modifyGroupAvatarForGroupID({params},callback(ret,err))
params
groupID:
- 类型:字符串
- 描述:群组ID
groupAvatar:
- 类型:字符串
- 描述:新的群组头像地址
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;是否成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var qidaIM = api.require('qidaIM');
qidaIM.modifyGroupAvatarForGroupID({
groupID: '',
groupAvatar:''
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
modifyGroupIntroForGroupID
修改群组描述
modifyGroupIntroForGroupID({params},callback(ret,err))
params
groupID:
- 类型:字符串
- 描述:群组ID
groupIntro:
- 类型:字符串
- 描述:新的群组描述
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;是否成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var qidaIM = api.require('qidaIM');
qidaIM.modifyGroupIntroForGroupID({
groupID: '',
groupIntro:''
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
modifyGroupNicknameForGroupID
修改用户群昵称
modifyGroupNicknameForGroupID({params},callback(ret,err))
params
groupID:
- 类型:字符串
- 描述:群组ID
userID:
- 类型:字符串
- 描述:用户ID
nickname:
- 类型:字符串
- 描述:用户昵称
callback(ret, err)
ret: Android无回调
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;是否成功,true|false
}
err: Android无回调
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var qidaIM = api.require('qidaIM');
qidaIM.modifyGroupNicknameForGroupID({
groupID: '',
userID: '',
nickname: ''
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
transferGroupOwnerForGroupID
转让群主
transferGroupOwnerForGroupID({params},callback(ret,err))
params
groupID:
- 类型:字符串
- 描述:群组ID
userID:
- 类型:字符串
- 描述:要转让的用户ID
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;是否成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var qidaIM = api.require('qidaIM');
qidaIM.transferGroupOwnerForGroupID({
groupID: '',
userID: ''
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
setGroupManagerForGroupID
设置/取消群管理员
setGroupManagerForGroupID({params},callback(ret,err))
params
groupID:
- 类型:字符串
- 描述:群组ID
userID:
- 类型:字符串
- 描述:要设置/取消的用户ID
isAdministrator:
- 类型:布尔
- 描述:(可选项)是否是管理员
- 默认:true
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;是否成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var qidaIM = api.require('qidaIM');
qidaIM.setGroupManagerForGroupID({
groupID: '',
userID: '',
isAdministrator:true
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
setGroupMsgShieldForGroupID
设置群消息屏蔽
setGroupMsgShieldForGroupID({params},callback(ret,err))
params
groupID:
- 类型:字符串
- 描述:群组ID
isShield:
- 类型:布尔
- 描述:(可选项)是否屏蔽
- 默认:true
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;是否成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var qidaIM = api.require('qidaIM');
qidaIM.setGroupMsgShieldForGroupID({
groupID: '',
isShield:true
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
setGroupShutupForGroupID
设置群禁言(只允许群组或者全管理员发消息,暂仅支持ios)
setGroupShutupForGroupID({params},callback(ret,err))
params
groupID:
- 类型:字符串
- 描述:群组ID
isShutup:
- 类型:布尔
- 描述:(可选项)是否禁言
- 默认:true
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;是否成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var qidaIM = api.require('qidaIM');
qidaIM.setGroupShutupForGroupID({
groupID: '',
isShutup:true
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
openSession
打开会话页面
openSession()
示例代码
var qidaIM = api.require('qidaIM');
qidaIM.openSession();
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
openContact
打开联系人页面
openContact()
示例代码
var qidaIM = api.require('qidaIM');
qidaIM.openContact();
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
openMine
打开我的页面
openMine()
示例代码
var qidaIM = api.require('qidaIM');
qidaIM.openMine();
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
closeView
关闭打开的UI页面
closeView()
示例代码
var qidaIM = api.require('qidaIM');
qidaIM.closeView();
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
configureUI
配置UI页面
configureUI({params},callback(ret,err))
params
navigationBar:
- 类型:JSON 对象
- 描述:导航条样式配置
- 内部字段:
{
titleColor: '#fff', //字符串类型;标题文字颜色;默认:#fff
bgColor: '#2A569B' //字符串类型;导航条背景色;默认:#2A569B
}
示例代码
var qidaIM = api.require('qidaIM');
qidaIM.configureUI({
navigationBar:{
titleColor: '#fff',
bgColor: '#2A569B'
}
});
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
附录
用户信息
- 类型:JSON 对象
- 描述:用户的相关信息
- 内部字段:
{
loginName: '', //字符串类型;登录名
pic:'', //字符串类型;头像信息
OPhone:'', //字符串类型;办公电话
mobile:'', //字符串类型;移动电话
email:'', //字符串类型;电子邮件
job:'', //字符串类型;职位
empcode:'', //字符串类型;员工号
note:'', //字符串类型;签名
sex:'', //字符串类型;性别 0:未知 1:男 2:女
userStatus:0, //数字类型;用户状态 0-未激活;1-正常;2-禁用;3-删除
status:0, //数字类型;在线状态,取值范围如下:
//0:离线
//1:在线
//2:离开
//3:忙碌
//4:自动离开
//5:请勿打扰
nameSP:'', //字符串类型;姓名简拼
nameAP:'', //字符串类型;姓名全拼
birthday:'', //字符串类型;生日
roomNum:'', //字符串类型;房间号
shortNum:'', //字符串类型;短号
deptID:'', //字符串类型;主部门ID
deptName:'', //字符串类型;主部门名称
secLevel:'', //字符串类型;用户等级
address:'', //字符串类型;地址
lastOffLineTime:'', //字符串类型;最近离线时间
groupRole:'', //字符串类型;在群组中的角色 群主/管理员/普通群成员
nickname:'', //字符串类型;在群组中的昵称
isTop:true, //布尔类型;好友中是否置顶
extData:'', //字符串类型;扩展属性数据
extData1:'', //字符串类型;扩展属性数据1
extData2:'', //字符串类型;扩展属性数据2
}
部门信息
- 类型:JSON 对象
- 描述:部门的相关信息
- 内部字段:
{
companyID: '', //字符串类型;部门ID
parantID:'', //字符串类型
code:'', //字符串类型
deptPath:'', //字符串类型
createdate:'' //字符串类型
}
会话信息
- 类型:JSON 对象
- 描述:会话的相关信息
- 内部字段:
{
sessionId: '', //字符串类型;会话ID,如果当前session为group, 则sessionId为groupId,如果是P2P则为对方帐号
ext:'', //字符串类型;会话扩展属性
chatType:0, //数字类型;会话类型,取值范围如下:
//0:单聊会话
//1:群组会话
//2:群发会话
//3:应用会话
//4:系统通知
}
群组信息
- 类型:JSON 对象
- 描述:群组的相关信息
- 内部字段:
{
type:0, //数字类型;群组类型,取值范围如下:
//0:个人群
//1:固定群
//2:部门群
ownerID:'', //字符串类型;群主id
ownerName:'', //字符串类型;群主名
pic:'', //字符串类型;群头像
userCount:6, //数字类型;群规模
memberCount:6, //数字类型;群成员数
visiterAce:6, //数字类型;访问者权限
createTime:'', //字符串类型;创建日期
updateTime:'', //字符串类型;更新时间
note:'', //字符串类型;群公告
desc:'', //字符串类型; 群描述
isTop: true, //布尔类型;是否置顶
nameSP:'', //字符串类型;群名称简拼
nameAP:'', //字符串类型;群名称全拼
isActivate:true, //布尔类型;是否激活
hideqdg:1, //数字类型;屏蔽标识
isShutup: true, //布尔类型;是否禁言
notifyType:1, //数字类型;群消息屏蔽 1. 接收提醒 2.接收不提醒
flag:6, //数字类型;扩展字段
}
消息内容
- 类型:JSON 对象
- 描述:获取到的消息包含的内容及其相关信息
- 内部字段:
{
messageId: '', //字符串类型;消息ID,唯一标识
session:{}, //json对象;所属会话,详情参考附录:会话信息
status:0 , //数字类型;消息发送状态,取值范围如下:
//0:默认状态
//1:发送成功
//2:发送失败
//3:消息被已读
//4:消息收到
//5:消息回执已发送
//6:消息回执发送失败
//7:消息被撤销
senderId:'', //字符串类型;消息发送者id
senderName:'', //字符串类型;消息发送者名字
ssid:'', //字符串类型;senderssid
title:'', //字符串类型;消息标题
contentType:'', //字符串类型;消息内容类型(text/json 等)
content:'', //字符串类型;消息内容
extData:'', //字符串类型;额外消息数据
localExtData:'', //字符串类型;本地数据扩展
msgExtType:'', //字符串类型;消息扩展类型
timestamp:0 , //数字类型;消息发送时间(纳秒级),本地存储消息可以通过修改时间戳来调整其在会话列表中的位置,发完服务器的消息时间戳将被服务器自动修正
msgFlag:0 , //数字类型;消息信息标示
deliveryState:0 , //数字类型;消息投递状态 仅针对发送的消息,取值范围如下:
//0:消息发送失败
//1:消息发送中
//2:消息发送成功 isOutgoingMsg:true, //布尔类型;是否是往外发的消息
isReceivedMsg:true, //布尔类型;是否是收到的消息,由于有漫游消息的概念,所以自己发出的消息漫游下来后仍旧是"收到的消息",这个字段用于消息出错是时判断需要重发还是重收
isPlayed:true, //布尔类型;消息是否被播放过息
isDeleted:true, //布尔类型;消息是否标记为已删除
isRemoteRead:true, //布尔类型;对端是否已读,只有当当前消息为 P2P 消息且 isOutgoingMsg 为 YES 时这个字段才有效,需要对端调用过发送已读回执的接口
isLocalRead:true, //布尔类型;是否本地已读,标记未读消息使用
attachmentDownloadState:0 , //数字类型;消息附件下载状态 仅针对收到的消息,取值范围如下:
//0:附件需要进行下载 (有附件但并没有下载过)
//1:附件收取失败 (尝试下载过一次并失败)
//2:附件下载中
//3:附件下载成功/无附件 attachments:'', //字符串类型;附件信息
openTimestamp:0 , //数字类型;消息打开时间
appcode:'', //字符串类型;消息来源类型 应用类消息对应的应用类型 conversationId:'', //字符串类型;会话Id(服务端使用)
msgnum:0 , //数字类型;消息序号 senderMsgnum:0 , //数字类型;发送者的消息序号间
msgCount:0 , //数字类型;模糊查询的消息数量
body: {} //JSON 对象;消息体(消息包含的内容),详情参考附录:消息体内容
}
消息体内容
- 类型:JSON 对象
- 描述:消息体包含的内容及其相关信息
- 内部字段:
{
type: 0, //数字类型;消息类型,取值范围如下:
//0:文本消息
//1:富文本消息
//2:图片消息
//3:文件消息
//4:语音消息
//5:小视频
//6:定位消息
//7:链接消息
//8:签收消息
//9:确认签收消息
//10:通知消息
//11:撤回消息
//12:音频通话
//13:视频通话
//14:自定义消息
//15:名片消息
//201:未知
...: ... //消息体除type外的其它内容,详情参考附录:消息体-图片、视频、位置、语音、文件
}
消息体-文本
- 类型:JSON 对象
- 描述:文本类型的消息体内容
- 内部字段:
{
type: 2,
guid: '', //字符串类型;图片guid
fileName: '', //字符串类型;文件展示名
size:{ //json对象,图片尺寸
w:0,
h:0
},
path: '', //字符串类型;图片本地路径
fshost: '', //字符串类型;文件的服务地址
url: '', //字符串类型;图片远程路径
fileLength: 6, //数字类型;文件大小
}
消息体-图片
- 类型:JSON 对象
- 描述:图片类型的消息体内容
- 内部字段:
{
type: 2,
guid: '', //字符串类型;图片guid
fileName: '', //字符串类型;文件展示名
size:{ //json对象,图片尺寸
w:0,
h:0
},
path: '', //字符串类型;图片本地路径
fshost: '', //字符串类型;文件的服务地址
url: '', //字符串类型;图片远程路径
fileLength: 6, //数字类型;文件大小
}
消息体-视频
- 类型:JSON 对象
- 描述:视频类型的消息体内容
- 内部字段:
{
type: 5,
guid: '', //字符串类型;视频guid
fileName: '', //字符串类型;文件展示名
path: '', //字符串类型;视频本地路径
fshost: '', //字符串类型;文件的服务地址
url: '', //字符串类型;视频远程路径
fileLength: 6, //数字类型;文件大小
}
消息体-位置
- 类型:JSON 对象
- 描述:位置类型的消息体内容
- 内部字段:
{
type: 6,
latitude: 39, //数字类型;纬度
longitude: 116, //数字类型;经度
title: '', //字符串类型;标题
info: '', //字符串类型;地理位置描述
}
消息体-语音
- 类型:JSON 对象
- 描述:语音类型的消息体内容
- 内部字段:
{
type: 4,
fileName: '', //字符串类型;文件展示名
guid: '', //字符串类型;声音文件的 guid
path: '', //字符串类型;语音的本地路径
fshost: '', //字符串类型;文件的服务地址
url: '', //字符串类型;语音的远程路径
duration: 6, //数字类型;语音时长,单位为毫秒
}
消息体-文件
- 类型:JSON 对象
- 描述:文件类型的消息体内容
- 内部字段:
{
type: 3,
fileName: '', //字符串类型;文件展示名
fileId: '', //字符串类型;文件Id
path: '', //字符串类型;文件的本地路径
fshost: '', //字符串类型;文件的服务地址
url: '', //字符串类型;文件的远程路径
md5: '', //字符串类型;文件MD5
fileSize: 6, //数字类型;文件大小
status:0 , //数字类型;附件状态,取值范围如下:
//0:默认
//1:下载完成
//2:下载失败
//3:上传成功
//4:上传失败
//5:上传中
fileType:0 , //数字类型;文件类型,取值范围如下:
//0:文件
//1:文件夹
//2:图片
//3:音频
//4:视频
}