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) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: 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) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: 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 对象
  • 内部字段:
{
code:,          //数字类型;错误码
msg: ‘’,           //字符串类型;错误信息
}

示例代码

var UITencentIm = api.require('UITencentIm');
UITencentIm.getUsersInfo({
users:[],
}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: 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) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: 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) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: 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时有效                            


}
是否仍需要帮助? 请保持联络!
最后更新于 2024/02/22