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>

模块接口

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时有效                            


}