UITencentIm
模块概述
UITencentIm 模块封装了腾讯云通信IM。云通信(Instant Messaging,IM)承载亿级 QQ 用户即时通讯技术,立志成为企业数字化转型的通信助手,为您提供全方位立体化的通信能力,让通信触达全球,智联万物。
注意:
UITencentIm 是针对对UI和功能需求不那么高的开发者推出的模块。如果你的项目对UI和功能要求很深,请在充分调研本模块是否满足需求后再决定使用。本模块提供的UI接口不满足需求,建议使用 tencentIm 模块,让前端去实现UI部分。UITencentIm 模块就是基于tencentIm提供的接口基础上扩展了UI相关的部分接口。请在项目启动前做好调研评估后再决定是否使用本模块。
注意:本模块 iOS 平台上最低适配系统版本为 iOS 8.0
使用此模块之前必须先配置 config 文件,配置方法如下:
- 名称:UITencentIm
- 参数:appid
- 配置示例:
<feature name="UITencentIm">
<param name="appid" value="1400213323" />
</feature>
字段描述:
appid:腾讯云通信控制平台获取。
模块接口
login
登陆
login({params}, callback(ret))
params
identifier:
- 类型:字符串类型
- 描述:用户帐号
userSig:
- 类型:字符串类型
- 描述:用户帐号签名,由私钥加密获得
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
status:, //布尔类型,是否成功
}
err:
- 类型:JSON 对象
- 内部字段:
{
code:, //数字类型;错误码
msg: '', //字符串类型;错误信息
}
示例代码
var UITencentIm = api.require('UITencentIm');
UITencentIm.login({
identifier:'',
userSig:'',
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
logout
登出
logout({params}, callback(ret))
params
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
status:, //布尔类型,是否成功
}
err:
- 类型:JSON 对象
- 内部字段:
{
code:, //数字类型;错误码
msg: '', //字符串类型;错误信息
}
示例代码
var UITencentIm = api.require('UITencentIm');
UITencentIm.logout({
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
configure
UI设置
configure({params})
params
navigationStyle:
- 类型:JSON 对象
- 描述:导航条样式配置
- 内部字段:
{
bg:'#fff', //字符串类型;导航条背景色,支持rgb、rgba、#;默认:#fff
backImg:'' //字符串类型;导航条返回按钮图片路径
}
navigationTitle:
- 类型:JSON 对象
- 描述:导航条样式配置
- 内部字段:
{
title: '', //字符串类型;聊天页面标题;默认:聊天用户ID
titleColor: '#000' //字符串类型;聊天页面标题文字颜色;默认:#000
}
示例代码
var UITencentIm = api.require('UITencentIm');
UITencentIm.configure({
});
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
chat
根据会话 ID 和类型创建并打开聊天页面
chat({params})
params
sessionId:
- 类型:字符串
- 描述:会话ID
chatType:
- 类型:数字类型
- 描述:(可选项)会话类型
- 默认:0
- 取值范围:
- 0:单聊
- 1:群组
示例代码
var UITencentIm = api.require('UITencentIm');
UITencentIm.chat({
});
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
chatList
打开最近会话页面
chatList({params})
params
navigationTitle:
- 类型:JSON 对象
- 描述:导航条样式配置
- 内部字段:
{
title: '', //字符串类型;最近会话页面标题;默认:会话
titleColor: '#000' //字符串类型;最近会话页面标题文字颜色;默认:#000
}
示例代码
var UITencentIm = api.require('UITencentIm');
UITencentIm.chatList({
});
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
getUsersInfo
获取用户资料。
getUsersInfo({params}, callback(ret))
params
users:
- 类型:数组类型
- 描述:用户 identifier 列表
- 内部字段: ``` ['','','',]
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
```js { status:, //布尔类型,是否成功 infos:[{ //json数组,用户资料 userID:'', //字符串类型;用户 ID nickName:'', //字符串类型;用户昵称 gender:0, //数字类型;用户性别;0:未知性别,1:男性,2:女性 allowType:0, //数字类型;用户好友验证方式;0:同意任何用户加好友,1:需要验证,2:拒绝任何人加好友 }] }
err:
- 类型:JSON 对象
- 内部字段:
```js
{
code:, //数字类型;错误码
msg: ‘’, //字符串类型;错误信息
}
示例代码
var UITencentIm = api.require('UITencentIm');
UITencentIm.getUsersInfo({
users:[],
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
setSelfInfo
设置用户资料
setSelfInfo({params}, callback(ret))
params
selfSignature:
- 类型:字符串类型
- 描述:(可选项)用户签名
nickName:
- 类型:字符串类型
- 描述:(可选项)用户昵称
faceURL:
- 类型:字符串类型
- 描述:(可选项)用户头像
gender:
- 类型:数字类型
- 描述:(可选项)用户性别;0:未知性别,1:男性,2:女性
- 默认:1
allowType:
- 类型:数字类型
- 描述:(可选项)用户好友验证方式;0:同意任何用户加好友,1:需要验证,2:拒绝任何人加好友
- 默认:0
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
status:, //布尔类型,是否成功
}
err:
- 类型:JSON 对象
- 内部字段:
{
code:, //数字类型;错误码
msg: ‘’, //字符串类型;错误信息
}
示例代码
var UITencentIm = api.require('UITencentIm');
UITencentIm.setSelfInfo({
nickName:'',
faceURL:''
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
addNewMessageListener
添加新消息监听
addNewMessageListener({params}, callback(ret))
params
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
status:, //布尔类型,是否成功
messages:[ //Json数组类型;消息,只是本地曾经没有过的消息
{
peer:'', //字符串类型;聊天标识
type:, //数字类型;聊天类型;1/单聊会话,2/群组会话,3/系统会话
msgId:‘’, //字符串类型;messageId 当消息生成时,就已经固定
uniqueId:, //数字类型;当消息发送成功以后才能固定下来
sender:'', //字符串类型;发送者
messageStatus:, //数字类型;消息状态;1/发送中,2/发送完成,3/发送失败,4/已删除,5/本地消息,6/已撤回,
timestamp:, //数字类型;发送时间,服务器生成时间
seq:, //数字类型;消息序列号
isRead:, //布尔类型;是否已读
elems:[ //Json数组类型;根据内部字段type 分为文字消息、图片消息等内容详细信息请查看附录;1/文本消息,4/图片消息,5/语音消息,6/自定义消息,7/文件消息,9/群组消息,10/表情消息,11/位置消息,12/系统消息,13/关系变更通知,15/视频消息
],
groupName:'', //字符串类型;群组名称,iOS不支持
},]
}
err:
- 类型:JSON 对象
- 内部字段:
{
code:, //数字类型;错误码
msg: ‘’, //字符串类型;错误信息
}
示例代码
var UITencentIm = api.require('UITencentIm');
UITencentIm.addNewMessageListener({
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
附录
消息内容elems--文本消息
- 类型:JSON 对象
- 描述:文本消息
- 内部字段:
{ type:, //数字类型;为1时为文本消息 text:'', //字符串类型;文本消息内容 }
消息内容elems--图片消息
- 类型:JSON 对象
- 描述:图片消息
- 内部字段:
{ type:, //数字类型;为4时为图片消息 level:'', //数字类型;图片质量 path:'', //字符串类型;图片地址 imageList:[{ //Json数组;图片参数 type:, //数字类型;图片类型,0/普通,1/缩略图,2/大图 url:'', //字符串类型;图片url uuid:'', //字符串类型;图片uuid size:, //小数类型;图片大小 height:, //小数类型;图片高 width:, //小数类型;图片宽 },], }
消息内容elems--表情消息
- 类型:JSON 对象
- 描述:表情消息
- 内部字段:
{ type:, //数字类型;为10时为表情消息 index:, //数字类型;自定义消息inde data:'', //字符串类型;自定义消息内容base64字符串 }
消息内容elems--语音消息
- 类型:JSON 对象
- 描述:语音消息
- 内部字段:
{ type:, //数字类型;为5时为语音消息 duration:, //小数类型;语音时间 dataSize:, //小数类型;语音大小 path:'', //字符串类型;语音路径 }
消息内容elems--位置消息
- 类型:JSON 对象
- 描述:位置消息
- 内部字段:
{ type:, //数字类型;为11时为位置消息 desc:'', //字符串类型;位置信息描述 longitude:, //小数类型;经度 latitude:, //小数类型;纬度 }
消息内容elems--文件消息
- 类型:JSON 对象
- 描述:文件消息
- 内部字段:
{ type:, //数字类型;为7时为文件消息 fileName:'', //字符串类型;文件名称 fileSize:, //小数类型;文件大小 path:'', //字符串类型;文件路径 }
消息内容elems--自定义消息
- 类型:JSON 对象
- 描述:自定义消息
- 内部字段:
{ type:, //数字类型;为6时为自定义消息 data:'', //字符串类型;自定义消息数据base64字符串 }
消息内容elems--群组消息
- 类型:JSON 对象
- 描述:群组消息
- 内部字段:
{ type:, //数字类型;为9时为群组消息 tipsType:, //数字类型;群组消息类型;1/加入群组,2/主动退出群组,3/被踢出群组,4/设置管理员,5/取消管理员,6/修改群资料,7/修改群成员信息,8/新建群(iOS不支持),9/删除群(iOS不支持) opUser:'', //字符串类型;操作用户 groupName:'', //字符串类型;群组名称 groupId:'', //字符串类型 userList:[ //数组类型;被操作的用户 '','','', ] }
消息内容elems--群组系统消息
- 类型:JSON 对象
- 描述:群组系统消息
- 内部字段:
{
type:, //数字类型;为12时为群组系统消息
sysType:, //数字类型;取值如下:
android群组通知消息类型:1/申请加群被同意,2/申请加群被拒绝,3/申请加群,4/取消管理员,5/创建群消息,6/群被解散,7/设置管理员,8/邀请加群,9/被管理员踢出群,10/主动退群,11/群已被回收,12/邀请入群请求,13/邀请加群被同意,14/邀请加群被拒绝;
iOS群组通知消息类型;1/申请加群请求(只有管理员会收到),2/申请加群被同意(只有申请人能够收到),3/申请加群被拒绝(只有申请人能够收到),4/被管理员踢出群(只有被踢的人能够收到),5/群被解散(全员能够收到),6/创建群消息(创建者能够收到),7/邀请入群通知(被邀请者能够收到),8/主动退群(主动退群者能够收到),9/设置管理员(被设置者接收),10/取消管理员(被取消者接收),11/群已被回收(全员接收),12/邀请入群请求(被邀请者接收),13/邀请加群被同意(只有发出邀请者会接收到),14/邀请加群被拒绝(只有发出邀请者会接收到),15/用户自定义通知(默认全员接收)
platform:'', //字符串类型;操作平台信息
groupId:'', //字符串类型;群id
opUser:'', //字符串类型;操作人
opReason:'', //字符串类型;操作理由
}
消息内容elems--关系变更消息
- 类型:JSON 对象
- 描述:关系变更消息
- 内部字段:
{
type:, //数字类型;为13时为关系变更消息
subType:, //数字类型;关系变更类型,1/增加好友消息,2/删除好友消息,3/增加好友申请,4/删除未决申请,5/黑名单增加,6/黑名单删除,7/未决已读上报,8/关系资料变更,9/推荐数据增加(仅支持iOS),10/推荐数据删除(仅支持iOS),11/已决增加(仅支持iOS),12/已决删除(仅支持iOS),13/推荐已读上报(仅支持iOS),14/已决已读上报(仅支持iOS)
requestAddFriendUserList:['',''], //数组类型;成为好友的用户列表,当subType为1时有效,iOS不支持
delRequestAddFriendUserList:['',''], //数组类型;删除好友的用户列表,subType为2时有效,iOS不支持
friendAddPendencyList:[ //数组类型;申请好友信息列表,subType为3时有效,iOS不支持
{fromUser:'', //字符串类型;添加好友操作者
addSource:'', //字符串类型;添加来源
fromUserNickName:'', //字符串类型;添加好友操作者昵称
addWording:''. //字符串类型;添加好友附言
},
],
delFriendAddPendencyList:['',], //数组类型;删除未决申请列表;subType为4时有效,iOS不支持
changeInfoList:['','',], //数组类型;资料变更好友列表;subType为8时有效,iOS不支持
addBlacklistUserList:['',], //数组类型;添加黑名单好友列表;subType为5时有效,iOS不支持
delBlacklistUserList:['',], //数组类型;删除黑名单列表;subType为6时有效,iOS不支持
userList:[{ //数组类型;被操作用户列表(仅iOS支持)
identifier:'', //字符类型;用户 identifier
nickname:'', //字符类型;用户昵称
wording:'', //字符类型;申请添加时有效,添加理由
source:'', //字符类型;申请时填写,添加来源
remark:'', //字符类型;备注,subType为8时有效
}],
pendencyReportTimestamp, //数字类型,未决已读上报时间戳,subType为7时有效
recommendReportTimestamp, //数字类型,推荐已读上报时间戳,subType为13时有效
decideReportTimestamp, //数字类型,已决已读上报时间戳,subType为14时有效
}