更新记录

1.0.11(2026-05-12)

修改getMessageStatus 状态

1.0.10(2026-05-08)

修复群聊监听器添加成员报错的bug

1.0.9(2026-04-30)

修复回调函数释放问题

查看更多

平台兼容性

uni-app(4.76)

Vue2 Vue3 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
- - - - - - 7.0 12 -
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 小红书小程序 快应用-华为 快应用-联盟
- - - - - - - - - - - -

uni-app x(4.76)

Chrome Safari Android iOS 鸿蒙 微信小程序
- - - - - -

其他

多语言 暗黑模式 宽屏模式 蒸汽模式
× × × √

TencentIM 插件

  • 版本号( 7.9.5680)

项目引入

 import {  AtGroupType, MessageType, getHistoryMessageType, mergerMessageType, sendMessageType, tencentIM } from '@/uni_modules/p-im';

安卓需要设置:"minSdkVersion": "24"

InitSDK

初始化腾讯云 IM SDK

tencentIM.InitSDK(appId: number, logLevel: number): void    
参数名 类型 是否必填 描述
appId number 是 腾讯云 IM 应用的 SDKAppID(从 腾讯云 IM 控制台 申请)
logLevel number 是 日志输出级别:1.V2TIM_LOG_DEBUG ,2.V2TIM_LOG_ERROR,3.V2TIM_LOG_INFO,4.V2TIM_LOG_NONE,5.V2TIM_LOG_WARN
//示例
tencentIM.InitSDK("XXX", 3, (res) => {
  console.log(res)
});

unInitSDK

反初始化腾讯云 IM SDK

tencentIM.unInitSDK(): void

//示例
tencentIM.unInitSDK()

login

用户登录

tencentIM.login(userId: string, userSig: string, callback: CallBack): void
参数名 类型 是否必填 描述
userId string 是 用户唯一标识(自定义,需与后端一致)
userSig string 是 用户签名(从后端获取,用于身份校验)
callback CallBack 是 登录结果回调,返回登录成功 / 失败信息
tencentIM.login("penglele", "eJyrVgrxCdYrSy1SslIy0jNQ0gHzM1NS80oy0zLBwgWpeek5qTmpULnilOzEgoLMFCUrQzMDAwNjSxNLc4hMakVBZlEqUNzU1NQIKAURLcnMBYmZmxlbmhtZWJhCTclMBxrtaOkV5Z9UEaOf4xoYYZAUox9Zqm3i7WOQmBgcGhoQZhkElPIoLA0IyssKNS23VaoFAHtdMz0_", (res:UTSJSONObject) => {
  console.log(res)
})

logout

退出登录

tencentIM.logout(callback: CallBack): void
tencentIM.logout((res) => {
                    console.log(res)
})

addAdvancedMsgListener

高级监听器

回调事件

事件类型 描述 回调数据
onRecvNewMessage 收到新消息 { type: "onRecvNewMessage", data: MessageType }
onRecvMessageRevoked 消息撤回 { type: "onRecvMessageRevoked", msgID: string }
onRecvC2CReadReceipt 收到单聊已读回执 { type: "onRecvC2CReadReceipt", receiptList: UTSJSONObject[] }
onRecvMessageModified 消息内容被修改 { type: "onRecvMessageModified", data: MessageType }
onRecvMessageExtensionsDeleted 消息扩展信息被删除 { type: "onRecvMessageExtensionsDeleted", msgID: string,extensionKeys:string[] }
onGroupMessagePinned 置顶群消息列表变更 {type:"",groupID:string,message:MessageType,isPinned:boolean,opUser:UTSJSONObject}
tencentIM.addAdvancedMsgListener((res) => {
  console.log(res)
})

removeAdvancedMsgListener

移除高级监听器

tencentIM.removeAdvancedMsgListener();

addConversationListener

会话监听

回调事件

事件类型描述 回调数据 方法说明
onSyncServerStart { type: "onSyncServerStart" } 触发时机:开始同步服务器数据时回调,无额外参数,仅通知同步启动状态
onSyncServerFinish { type: "onSyncServerFinish" } 触发时机:服务器数据同步完成时回调,标识同步流程正常结束
onSyncServerFailed { type: "onSyncServerFailed" } 触发时机:服务器数据同步失败时回调,可用于提示用户同步异常或触发重试逻辑
onNewConversation { type: "onNewConversation", data: ConversationType[] } 触发时机:收到新的会话时回调,data 包含所有新增会话的详细信息(经 setConversation 格式化处理)
onConversationChanged { type: "onConversationChanged", data: ConversationType[] } 触发时机:已有会话信息发生变更(如消息未读数、会话名称等)时回调,data 为变更后的会话列表
onConversationDeleted { type: "onConversationDeleted", data: string[] } 触发时机:会话被删除时回调,data 为被删除会话的 ID 列表
onTotalUnreadMessageCountChanged { type: "onTotalUnreadMessageCountChanged", data: number } 触发时机:所有会话的未读消息总数发生变化时回调,data 为最新的未读消息总数
onConversationGroupCreated { type: "onConversationGroupCreated", data: ConversationType[], groupName: string } 触发时机:创建会话分组时回调,groupName 为新分组名称,data 为分组下关联的会话列表
onConversationGroupDeleted { type: "onConversationGroupDeleted", groupName: string } 触发时机:删除会话分组时回调,groupName 为被删除的分组名称
onConversationGroupNameChanged { type: "onConversationGroupNameChanged", oldName: string, newName: string } 触发时机:会话分组名称修改时回调,oldName 为原分组名称,newName 为修改后的新名称
onConversationsAddedToGroup { type: "onConversationsAddedToGroup", data: ConversationType[], groupName: string } 触发时机:将会话添加到指定分组时回调,groupName 为目标分组名称,data 为新增到该分组的会话列表
onConversationsDeletedFromGroup { type: "onConversationsDeletedFromGroup", data: ConversationType[], groupName: string } 触发时机:从指定分组中移除会话时回调,groupName 为目标分组名称,data 为从该分组移除的会话列表
tencentIM.addConversationListener((res) => {
        console.log(res)
})

removeConversationListener

移除会话监听

tencentIM.removeConversationListener()

addGroupListener

群监听器

回调事件

事件类型描述 回调数据 方法说明
onAllGroupMembersMuted { type: "onAllGroupMembersMuted", groupID: string, isMute: boolean } 触发时机:群内所有成员被静音或取消静音时回调,isMute 为 true 表示全员静音,false 表示取消全员静音
onApplicationProcessed { type: "onApplicationProcessed", groupID: string, opUser: UTSJSONObject, isAgreeJoin: boolean, opReason: string } 触发时机:群加入申请被处理时回调,opUser 为处理申请人信息,isAgreeJoin 标识是否同意加入,opReason 为处理原因
onGrantAdministrator { type: "onGrantAdministrator", groupID: string, opUser: UTSJSONObject, memberList: UTSJSONObject[] } 触发时机:群内授予管理员权限时回调,opUser 为操作人信息,memberList 为被授予管理员权限的成员列表
onGroupAttributeChanged { type: "onGroupAttributeChanged", groupID: string, groupAttributeMap: UTSJSONObject } 触发时机:群属性发生变更时回调,groupAttributeMap 为变更后的群属性键值对集合
onGroupCounterChanged { type: "onGroupCounterChanged", groupID: string, key: string, newValue: any } 触发时机:群计数器数值变更时回调,key 为计数器标识,newValue 为变更后的计数器值
onGroupCreated { type: "onGroupCreated", groupID: string } 触发时机:成功创建群聊时回调,groupID 为新创建群的唯一标识
onGroupDismissed { type: "onGroupDismissed", groupID: string, opUser: UTSJSONObject } 触发时机:群聊被解散时回调,opUser 为执行解散操作的用户信息
onGroupInfoChanged { type: "onGroupInfoChanged", groupID: string, changeInfos: UTSJSONObject[] } 触发时机:群基本信息(如群名称、简介等)变更时回调,changeInfos 为具体变更信息列表
onGroupRecycled { type: "onGroupRecycled", groupID: string, opUser: UTSJSONObject } 触发时机:群聊被回收时回调,opUser 为执行回收操作的用户信息
onMemberEnter { type: "onMemberEnter", groupID: string, memberList: UTSJSONObject[] } 触发时机:有新成员加聊时回调,memberList 为加的成员信息列表
onMemberInfoChanged { type: "onMemberInfoChanged", groupID: string, memberList: UTSJSONObject[] } 触发时机:群成员信息(如昵称、头像等)变更时回调,memberList 为信息变更的成员列表及变更详情
onMemberInvited { type: "onMemberInvited", groupID: string, opUser: UTSJSONObject, memberList: UTSJSONObject[] } 触发时机:通过邀请加***聊时回调,opUser 为邀请人信息,memberList 为被邀请加入的成员列表
onMemberKicked { type: "onMemberKicked", groupID: string, opUser: UTSJSONObject, memberList: UTSJSONObject[] } 触发时机:群成员被移出群聊时回调,opUser 为执行移出操作的用户信息,memberList 为被移出的成员列表
onMemberLeave { type: "onMemberLeave", groupID: string, member: UTSJSONObject } 触发时机:群成员主动退出群聊时回调,member 为退出群聊的成员信息
onMemberMarkChanged { type: "onMemberMarkChanged", groupID: string, memberIDList: string[], markType: number, enableMark: boolean } 触发时机:群成员标记状态变更时回调,memberIDList 为标记状态变更的成员 ID 列表,markType 为标记类型,enableMark 标识是否启用该标记
onQuitFromGroup { type: "onQuitFromGroup", groupID: string } 触发时机:当前用户主动退出群聊时回调,groupID 为退出的群标识
onReceiveJoinApplication { type: "onReceiveJoinApplication", groupID: string, member: UTSJSONObject, opReason: string } 触发时机:收到他人加***聊的申请时回调,member 为申请人信息,opReason 为申请理由
onReceiveRESTCustomData { type: "onReceiveRESTCustomData", groupID: string, customData: string } 触发时机:收到通过 REST API 发送的群自定义数据时回调,customData 为自定义数据内容
onRevokeAdministrator { type: "onRevokeAdministrator", groupID: string, opUser: UTSJSONObject, memberList: UTSJSONObject[] } 触发时机:群内管理员权限被撤销时回调,opUser 为执行撤销操作的用户信息,memberList 为被撤销管理员权限的成员列表
onTopicCreated { type: "onTopicCreated", groupID: string, topicID: string } 触发时机:群内创建话题时回调,topicID 为新创建话题的唯一标识
onTopicDeleted { type: "onTopicDeleted", groupID: string, topicIDList: string[] } 触发时机:群内话题被删除时回调,topicIDList 为被删除话题的 ID 列表
onTopicInfoChanged { type: "onTopicInfoChanged", groupID: string, topicInfo: UTSJSONObject } 触发时机:群内话题信息(如话题名称、描述等)变更时回调,topicInfo 为变更后的话题详细信息
tencentIM.addGroupListener((res) => {
  console.log(res)
})

removeGroupListener

移除群监听器

tencentIM.removeGroupListener((res)=> {
  console.log(res)
})  

addFriendListener

关系链监听器

回调内容

事件类型描述 回调数据 方法说明
onFriendInfoChanged { type: "onFriendInfoChanged", infoList: UTSJSONObject[] } 触发时机:好友信息发生变更时回调,infoList 为变更后的好友信息列表(经 coverFriendInfo 格式化处理)
onFriendListAdded { type: "onFriendListAdded", friendInfoList: UTSJSONObject[] } 触发时机:新增好友时回调,friendInfoList 为新增的好友信息列表(经 coverFriendInfo 格式化处理)
onFriendListDeleted { type: "onFriendListDeleted", userIDList: string[] } 触发时机:删除好友时回调,userIDList 为被删除好友的用户 ID 列表(注:代码中入参为 groupNameList,按事件语义标注为 userIDList)
onFriendApplicationListAdded { type: "onFriendApplicationListAdded", applicationList: UTSJSONObject[] } 触发时机:收到新的好友申请时回调,applicationList 为好友申请列表(经 coverfrinedLocation 格式化处理,推测为拼写笔误,实际为好友申请格式化)
onBlackListAdd { type: "onBlackListAdd", applicationList: UTSJSONObject[] } 触发时机:添加用户到黑名单时回调,applicationList 为新增到黑名单的用户信息列表(经 coverFriendInfo 格式化处理,注:回调字段名 applicationList 与事件语义一致,沿用代码定义)
onBlackListDeleted { type: "onBlackListDeleted", userList: string[] } 触发时机:从黑名单中移除用户时回调,userList 为被移除的用户 ID / 信息列表
onFriendApplicationListDeleted { type: "onFriendApplicationListDeleted", userIDList: string[] } 触发时机:删除好友申请时回调,userIDList 为对应好友申请的发起者用户 ID 列表
onFriendApplicationListRead { type: "onFriendApplicationListRead" } 触发时机:好友申请列表标记为已读时回调,无额外参数,仅通知已读状态变更
onMutualFollowersListChanged { type: "onMutualFollowersListChanged", userInfoList: UTSJSONObject[], isAdd: boolean } 触发时机:双向关注(互粉)列表变更时回调,userInfoList 为变更的用户信息列表(经 converUserFullInfo 格式化),isAdd 标识是新增还是移除互粉关系
onMyFollowersListChanged { type: "onMyFollowersListChanged", userInfoList: UTSJSONObject[], isAdd: boolean } 触发时机:我的粉丝列表变更时回调,userInfoList 为变更的粉丝信息列表(经 converUserFullInfo 格式化),isAdd 标识是新增粉丝还是减少粉丝
onOfficialAccountDeleted { type: "onOfficialAccountDeleted", officialAccountID: string } 触发时机:删除公众号时回调,officialAccountID 为被删除公众号的唯一标识
onOfficialAccountInfoChanged { type: "onOfficialAccountInfoChanged", officialAccountInfo: { createTime: number, customData: string, faceUrl: string, introduction: string, officialAccountID: string, officialAccountName: string, organization: string, ownerUserID: string, subscribeTime: number, subscriberCount: number } } 触发时机:公众号信息发生变更时回调,officialAccountInfo 为变更后的公众号完整信息,包含创建时间、头像、简介等字段
onOfficialAccountSubscribed { type: "onOfficialAccountSubscribed", officialAccountInfo: { createTime: number, customData: string, faceUrl: string, introduction: string, officialAccountID: string, officialAccountName: string, organization: string, ownerUserID: string, subscribeTime: number, subscriberCount: number } } 触发时机:订阅公众号成功时回调,officialAccountInfo 为所订阅公众号的完整信息
onOfficialAccountUnsubscribed { type: "onOfficialAccountUnsubscribed", officialAccountID: string } 触发时机:取消订阅公众号时回调,officialAccountID 为取消订阅的公众号唯一标识(注:代码中存在赋值错误 obj["type"] = json['officialAccountID'],已按语义修正为 officialAccountID 字段)
tencentIM.addFriendListener((res)=> {
  console.log(res)
})

removeFriendListener

移除关系监听器

tencentIM.removeFriendListener((res)=> {
  console.log(res)
  })

addIMSdkListener

添加 IM SDK 全局事件监听器(异步方法,监听 SDK 核心状态变更、用户信息变更等事件)

tencentIM.addIMSdkListener(callback: CallBack): void
参数名 类型 是否必填 描述
callback CallBack 是 事件回调函数:- 当 SDK 触发对应事件时,会调用该回调返回事件类型及详情- 错误时返回错误信息

监听事件类型及回调参数说明

事件类型 触发场景 回调参数结构
onAllReceiveMessageOptChanged 全局消息接收选项变更(如全局免打扰时段调整) { type: "onAllReceiveMessageOptChanged", receiveMessageOptInfo: { duration: number, startHour: number, startMinute: number, startSecond: number, startTimeStamp: number, userID: string } }
onConnectFailed SDK 连接失败(如网络异常、鉴权失败) { type: "onConnectFailed", code: number }(code 为错误码)
onConnecting SDK 正在连接中(首次登录 / 重连触发) { type: "onConnecting" }
onConnectSuccess SDK 连接成功 { type: "onConnectSuccess" }
onKickedOffline 当前用户被踢下线(如异地登录、账号封禁) { type: "onKickedOffline" }
onSelfInfoUpdated 当前用户的个人资料被修改(自己 / 后台修改) { type: "onSelfInfoUpdated", info: { allowType: number, birthday: number, customInfo: object, faceUrl: string, gender: number, level: number, nickName: string, role: number, selfSignature: string, userID: string } }
onUserInfoChanged 已订阅的非好友用户资料变更 { type: "onUserInfoChanged", userInfoList: Array<用户资料对象> }(converUserFullInfo 格式化后的列表)
onUserSigExpired 用户签名(UserSig)过期(需重新生成签名登录) { type: "onUserSigExpired" }
onUserStatusChanged 已订阅用户的在线状态变更(如上线 / 下线 / 离开) { type: "onUserStatusChanged", userStatusList: Array<用户状态对象> }(converUserStatusList 格式化后的列表)
tencentIM.addIMSdkListener((res)=> {
  console.log(res)
})

removeIMSdkListener

移除IMsdk

tencentIM.removeIMSdkListener((res)=> {
  console.log(res)
})

getLoginUser

获取当前登录用户信息(异步方法)

tencentIM.getLoginUser(callback: CallBack): void
参数名 类型 是否必填 描述
callback CallBack 是 回调函数,成功时返回格式化后的登录用户信息(含 userID、nickname 等字段),失败时返回错误信息
// 示例
tencentIM.getLoginUser((res) => {
  console.log("登录用户信息:", res);
});

getLoginStatus

获取当前用户登录状态(同步方法)

tencentIM.getLoginStatus(callback: CallBack): void
参数名 类型 是否必填 描述
callback CallBack 是 回调函数,返回登录状态结果,包含状态编码(code)和文字描述(data)
// 示例
tencentIM.getLoginStatus((res) => {
  console.log("当前登录状态:", res.code, res.data);
});

createTextMessage

创建文本消息(同步方法,结果通过回调返回)

tencentIM.createTextMessage(message: string, callback: CallBack): void
参数名 类型 是否必填 描述
message string 是 文本消息内容
callback CallBack 是 回调函数,返回处理后的统一格式消息对象(MessageType)
// 示例
tencentIM.createTextMessage("123123发布内容", (res:UTSJSONObject) => {
  console.log(res)
})

createCustomMessage

创建自定义消息(同步方法,结果通过回调返回)

tencentIM.createCustomMessage(message: string, callback: CallBack): void
参数名 类型 是否必填 描述
message string 是 自定义消息内容(字符串格式,原生内部会转为字节数组处理)
callback CallBack 是 回调函数,返回处理后的统一格式消息对象(MessageType)
// 示例
tencentIM.createCustomMessage("你好,请问你在干什么", (res:UTSJSONObject) => {
  console.log(res)
})

createSoundMessage

创建语音消息(同步方法,结果通过回调返回)

tencentIM.createSoundMessage(audioFilePath: string, duration: number, callback: CallBack): void
参数名 类型 是否必填 描述
audioFilePath string 是 语音文件本地存储路径
duration number 是 语音时长(单位:秒),会自动转为整数传入原生方法
callback CallBack 是 回调函数,返回处理后的统一格式消息对象(MessageType)
// 示例
tencentIM.createSoundMessage(path, duration, (response) => {
  console.log(response)
})

createVideoMessage

创建视频消息(同步方法,结果通过回调返回,自动获取文件类型)

tencentIM.createVideoMessage(path: string, duration: number, snapPath: string, callback: CallBack): void
参数名 类型 是否必填 描述
path string 是 视频文件本地存储路径
duration number 是 视频时长(单位:秒),会自动转为整数传入原生方法
snapPath string 是 视频封面图本地存储路径
callback CallBack 是 回调函数,返回处理后的统一格式消息对象(MessageType)
// 示例
uni.chooseImage({
  count: 1,
  success: (ress) => {
    let paths = ress.tempFilePaths[0];
    // #ifdef APP-IOS
    paths = paths.slice(paths.indexOf("/var"))
    // #endif
    this.imagePath = paths
    setTimeout(() => {
      uni.chooseVideo({
        success: (res) => {
          console.log(res)
          let path = res.tempFilePath;
          // #ifdef APP-IOS
          path = path.slice(path.indexOf("/var"))
          // #endif
          let duration = res.duration
          tencentIM.createVideoMessage(path, duration, this.imagePath, (response) => {
            console.log(response)
            this.customId = response["customId"] as string;
          });
        }
      })
    }, 1000)
  }
})

createFileMessage

创建文件消息(同步方法,结果通过回调返回)

tencentIM.createFileMessage(path: string, name: string, callback: CallBack): void
参数名 类型 是否必填 描述
path string 是 文件本地存储路径
name string 是 文件名(需包含后缀,如 "document.pdf"、"archive.zip")
callback CallBack 是 回调函数,返回处理后的统一格式消息对象(MessageType)
// 示例
uni.chooseVideo({
  success: (res) => {
    console.log(res)
    let path = res.tempFilePath;
    // #ifdef APP-IOS
    path = path.slice(path.indexOf("/var"))
    // #endif
    tencentIM.createFileMessage(path, "video", (response) => {
      console.log(response)
        this.customId = response["customId"] as string;
    })
  }
})

createLocationMessage

创建定位消息(同步方法,结果通过回调返回)

tencentIM.createLocationMessage(desc: string, longitude: number, latitude: number, callback: CallBack): void
参数名 类型 是否必填 描述
desc string 是 位置描述文本(如 "北京市朝阳区 XX 大厦"、"人民广场")
longitude number 是 经度(支持小数,内部自动转为 double 类型适配原生方法)
latitude number 是 纬度(支持小数,内部自动转为 double 类型适配原生方法)
callback CallBack 是 回调函数,返回处理后的统一格式消息对象(MessageType)
// 示例
uni.chooseLocation({
  success: (res) => {
    console.log(res)
    tencentIM.createLocationMessage("XXXXXX", res.longitude, res.latitude, (response) => {
      console.log(response)
    })

  }
})

createFaceMessage

创建表情消息(同步方法,结果通过回调返回)

tencentIM.createFaceMessage(index: number, callback: CallBack): void
参数名 类型 是否必填 描述
index number 是 表情索引(对应项目表情库中的位置序号,内部自动转为 int 类型)
callback CallBack 是 回调函数,返回处理后的统一格式消息对象(MessageType)
// 示例
tencentIM.createFaceMessage(1, (response) => {
  console.log(response);
})

createImageMessage

创建图片消息(同步方法,结果通过回调返回,

tencentIM.createImageMessage(imagepath: string, callback: CallBack): void
参数名 类型 是否必填 描述
imagepath string 是 图片文件本地存储路径(支持常见图片格式,如 jpg、png、webp 等)
callback CallBack 是 回调函数,返回处理后的统一格式消息对象(MessageType)
// 示例
uni.chooseImage({
  count: 1,
  success: (res) => {
    let path = res.tempFilePaths[0];
    // #ifdef APP-IOS
    path = path.slice(path.indexOf("/var"))
    // #endif
    path = path.replace(/^file:\/\//, ""); 
    tencentIM.createImageMessage(path, (response) => {
      this.customId = response["customId"] as string;
      console.log(response)
    })
  }
})

sendMessage

发送消息(异步方法,支持单聊 / 群聊,

tencentIM.sendMessage(params: sendMessageType, callback: CallBack): void
参数名 类型 是否必填 描述
params sendMessageType 是 发送消息的参数集合,包含消息主体、接收方等配置
callback CallBack 是 回调函数,返回发送结果(成功时返回消息发送详情,失败时返回错误信息)

params(sendMessageType)参数说明

参数名 类型 是否必填 描述
customId string 是 消息自定义 ID,用于关联本地 messageList 中创建好的消息对象(V2TIMMessage)
desc string 否 消息描述(可选补充信息)
ext string 否 消息扩展字段(自定义业务数据,字符串格式)
groupID string 否 群聊 ID(群聊场景必填,单聊场景无需传递)
onlineUserOnly boolean 否 是否仅在线用户可接收(默认 false,可选 true 仅发送给在线用户)
title string 否 消息标题(可选,多用于文件、链接等消息类型的补充说明)
userId string 否 单聊用户 ID(单聊场景必填,群聊场景无需传递)
// 创建文本消息
tencentIM.createTextMessage("123123发布内容", (res:UTSJSONObject) => {
  console.log(res)
  this.customId = res["customId"] as string;
})

// 然后发送消息
if (this.customId == "") {
  uni.showToast({
    title: "请先创建消息",
    icon: 'none'
  })
  return
}
let params : sendMessageType = {
  userId: this.user2,
  customId: this.customId,
  onlineUserOnly: false,
}
console.log(`自己id:${this.user1}`)
console.log(`对方id:${this.user2}`)
tencentIM.sendMessage(params, res => {
  console.log(res)
})

getC2CHistoryMessageList

获取单聊历史消息列表(异步方法,支持分页加载,

tencentIM.getC2CHistoryMessageList(params: getHistoryMessageType, callback: CallBack): void
参数名 类型 是否必填 描述
params getHistoryMessageType 是 获取历史消息的参数配置,包含接收方、分页等信息
callback CallBack 是 回调函数,返回单聊历史消息列表(MessageType []),失败时返回错误信息

params(getHistoryMessageType)参数说明

参数名 类型 是否必填 描述
userId string 是 单聊对方用户 ID(唯一标识)
count number 是 本次要获取的消息条数(分页大小)
lastMsgId string 否 分页起始消息 ID:- 传空字符串时,从最新消息开始往前获取- 传具体消息 ID 时,从该消息之前的消息开始获取(实现上拉加载更多)
tencentIM.getC2CHistoryMessageList({
  userId: this.user2,
  count: 20,
  lastMsgId: ""
} as getHistoryMessageType, (res) => {
  console.log(res)
  let aa = res["data"] as MessageType[];
  this.msgId = aa[0].msgID as string;
})

getGroupHistoryMessageList

获取群聊历史消息列表(异步方法,支持分页加载,

tencentIM.getGroupHistoryMessageList(params: getHistoryMessageType, callback: CallBack): void
参数名 类型 是否必填 描述
params getHistoryMessageType 是 获取历史消息的参数配置,包含群 ID、分页等信息
callback CallBack 是 回调函数,返回群聊历史消息列表(MessageType []),失败时返回错误信息

params(getHistoryMessageType)参数说明

参数名 类型 是否必填 描述
groupID string 是 群聊 ID(唯一标识)
count number 是 本次要获取的消息条数(分页大小)
lastMsgId string 否 分页起始消息 ID:- 传空字符串时,从最新消息开始往前获取- 传具体消息 ID 时,从该消息之前的消息开始获取(实现上拉加载更多)
// 示例1:获取群聊最新20条消息
tencentIM.getGroupHistoryMessageList({
  groupID: "@TGS#2DY76VNO4",
  count: 20,
  lastMsgId: ""
} as getHistoryMessageType, (res) => {
  console.log(res)
})

createMergerMessage

创建合并转发消息(异步方法,

tencentIM.createMergerMessage(params: mergerMessageType, callback: CallBack): void
参数名 类型 是否必填 描述
params mergerMessageType 是 合并消息的配置参数,包含待合并消息、标题等信息
callback CallBack 是 回调函数,返回创建成功的合并消息对象(MessageType),失败时返回错误提示

params(mergerMessageType)参数说明

参数名 类型 是否必填 描述
msg string[] 是 待合并转发的消息 ID 列表(需传入有效消息 ID,内部通过 findMessages 查询对应消息对象)
title string 是 合并消息的标题(如 "XX 的聊天记录"、"合并转发")
abstractList string[] 是 合并消息的摘要列表(每条摘要对应一条待合并消息,用于展示预览,如 "文本消息:你好")
compatibleText string 是 兼容文本(用于不支持合并消息的客户端展示,如 "该消息为合并转发,点击查看详情")

downloadMergerMessage

下载合并消息的原始消息列表(异步方法,

tencentIM.downloadMergerMessage(msgID: string, callback: CallBack): void
参数名 类型 是否必填 描述
msgID string 是 合并消息的唯一 ID(需为类型为合并消息的 msgID,非合并消息会返回类型错误)
callback CallBack 是 回调函数,成功时返回合并消息包含的原始消息列表,失败时返回错误信息
// 示例:下载合并消息的原始内容
tencentIM.downloadMergerMessage("144115244096203778-1763621525-3661797454", (res) => {
  console.log(res)
})

modifyMessage

修改已发送的文本消息内容(异步方法,仅支持文本消息)

tencentIM.modifyMessage(msgID: string, text: string, callback: CallBack): void
参数名 类型 是否必填 描述
msgID string 是 待修改的文本消息唯一 ID(非文本消息不会修改内容,仅执行原生修改逻辑)
text string 是 修改后的文本内容
callback CallBack 是 回调函数,成功时返回修改后的消息对象,失败时返回错误信息
// 示例:修改已发送的文本消息
tencentIM.modifyMessage(this.msgId, "哈哈哈,这是修改的内容bbb", (res) => {
  console.log(res)
})

insertC2CMessageToLocalStorage

向单聊会话插入本地消息(仅本地存储,不发送到服务端,异步方法)

tencentIM.insertC2CMessageToLocalStorage(customId: string, userId: string, sender: string, callback: CallBack): void
参数名 类型 是否必填 描述
customId string 是 本地消息列表 messageList 中已创建的消息自定义 ID(需先通过 createXXXMessage 创建)
userId string 是 单聊对方用户 ID(接收方)
sender string 是 消息发送方用户 ID(通常为当前登录用户 ID)
callback CallBack 是 回调函数,成功时返回插入后的本地消息对象,失败时返回错误信息
// 示例:向单聊插入本地文本消息
tencentIM.insertC2CMessageToLocalStorage(this.customId, this.user2, this.user1, (res) => {
  console.log(res)
})

insertGroupMessageToLocalStorage

向群聊会话插入本地消息(仅本地存储,不发送到服务端,异步方法)

tencentIM.insertGroupMessageToLocalStorage(customId: string, groupId: string, sender: string, callback: CallBack): void
参数名 类型 是否必填 描述
customId string 是 本地消息列表 messageList 中已创建的消息自定义 ID(需先通过 createXXXMessage 创建)
groupId string 是 目标群聊 ID
sender string 是 消息发送方用户 ID(通常为当前登录用户 ID)
callback CallBack 是 回调函数,成功时返回插入后的本地消息对象,失败时返回错误信息
// 示例:向群聊插入本地图片消息
tencentIM.insertGroupMessageToLocalStorage(this.customId, "@TGS#2DY76VNO4", this.user1, (res) => {
  console.log(res)
})

deleteMessageFromLocalStorage

删除本地存储的单条消息(仅删除本地缓存,不影响云端消息,异步方法)

tencentIM.deleteMessageFromLocalStorage(msgId: string, callback: CallBack): void
参数名 类型 是否必填 描述
msgId string 是 待删除的本地消息唯一 ID(需为已存在的本地消息 ID)
callback CallBack 是 回调函数,成功时返回删除结果,失败时返回错误信息
// 示例:删除本地单条消息
tencentIM.deleteMessageFromLocalStorage("144115244096203778-1763621525-3661797454", (res) => {
  console.log(res)
})

deleteMessages

删除云端存储的消息(支持批量删除,同步删除本地缓存,异步方法)

tencentIM.deleteMessages(msgIdList: string[], callback: CallBack): void
参数名 类型 是否必填 描述
msgIdList string[] 是 待删除的云端消息 ID 列表(需为已发送成功的消息 ID,空数组无操作)
callback CallBack 是 回调函数,成功时返回删除结果,失败时返回错误信息
// 示例:批量删除云端消息
tencentIM.deleteMessages(["144115244096203778-1763621525-3661797454"], (res) => {
  console.log(res)
})

clearC2CHistoryMessage

清空单聊的全部历史消息(同时删除本地和云端的单聊消息,异步方法)

tencentIM.clearC2CHistoryMessage(userId: string, callback: CallBack): void
参数名 类型 是否必填 描述
userId string 是 单聊对方用户 ID(清空与该用户的所有单聊消息)
callback CallBack 是 回调函数,成功时返回清空结果,失败时返回错误信息
// 示例:清空与指定用户的单聊消息
tencentIM.clearC2CHistoryMessage(this.user2, (res) => {
  console.log(res)
})

clearGroupHistoryMessage

清空群聊的全部历史消息(同时删除本地和云端的群聊消息,异步方法)

tencentIM.clearGroupHistoryMessage(groupId: string, callback: CallBack): void
参数名 类型 是否必填 描述
groupId string 是 目标群聊 ID(清空该群的所有历史消息)
callback CallBack 是 回调函数,成功时返回清空结果,失败时返回错误信息
// 示例:清空指定群聊的所有消息
tencentIM.clearGroupHistoryMessage("@TGS#2DY76VNO4", (res) => {
  console.log(res)
})

revokeMessage

撤回已发送的消息(支持单聊 / 群聊消息撤回,异步方法)

tencentIM.revokeMessage(msgId: string, callback: CallBack): void
参数名 类型 是否必填 描述
msgId string 是 待撤回的消息唯一 ID(需为已发送成功的消息,撤回有时间限制,参考腾讯 IM 官方规则)
callback CallBack 是 回调函数,成功时返回撤回结果,失败时返回错误信息(如超时、无权限等)
// 示例:撤回已发送的消息
tencentIM.revokeMessage(this.msgId, (res) => {
  console.log(res)
})

sendMessageReadReceipts

发送消息已读回执(标记指定消息为已读,异步方法)

tencentIM.sendMessageReadReceipts(msgIdList: string[], callback: CallBack): void
参数名 类型 是否必填 描述
msgIdList string[] 是 待标记为已读的消息 ID 列表(支持批量标记,空数组无操作)
callback CallBack 是 回调函数,成功时返回已读回执发送结果,失败时返回错误信息
// 示例:批量发送已读回执
tencentIM.sendMessageReadReceipts(["144115247769404501-1763973073-1480785706"], (res) => {
  console.log(res)
})

getMessageReadReceipts

获取消息的已读回执信息(查询指定消息的已读 / 未读状态,异步方法)

tencentIM.getMessageReadReceipts(msgIdList: string[], callback: CallBack): void
参数名 类型 是否必填 描述
msgIdList string[] 是 待查询的消息 ID 列表(支持批量查询,空数组无返回结果)
callback CallBack 是 回调函数,成功时返回各消息的已读回执详情,失败时返回错误信息
// 示例:查询消息已读回执信息
tencentIM.getMessageReadReceipts(["144115247769404501-1763973073-1480785706"], (res) => {
  console.log(res)
})

findLocalMessages

查询本地存储的消息(仅查询本地缓存,不请求云端,异步方法)

tencentIM.findLocalMessages(msgIdList: string[], callback: CallBack): void
参数名 类型 是否必填 描述
msgIdList string[] 是 待查询的本地消息 ID 列表(空数组返回空列表)
callback CallBack 是 回调函数,成功时返回本地消息列表(MessageType []),失败时返回错误信息
// 示例:查询本地缓存的消息
tencentIM.findLocalMessages(["144115247769404501-1763973073-1480785706"], (res) => {
  console.log(res)
})

createAtSignedGroupMessage

创建带 @标记的群消息(支持 @指定成员 / 全员,同步方法)

tencentIM.createAtSignedGroupMessage(params: AtGroupType, callback: CallBack): void
参数名 类型 是否必填 描述
params AtGroupType 是 创建 @群消息的参数配置
callback CallBack 是 回调函数,返回创建成功的 @群消息对象(MessageType),失败时返回错误信息

params(AtGroupType)参数说明

参数名 类型 是否必填 描述
customId string 是 本地消息列表 messageList 中已创建的消息自定义 ID(需先通过 createXXXMessage 创建基础消息)
atList string[] 是 @的群成员 ID 列表:- 传具体用户 ID 数组:@指定成员- 传 ["@all"]:@群内所有人
// 示例1:创建@指定成员的群文本消息
tencentIM.createAtSignedGroupMessage({
  customId: this.customId,
  atList: [this.user2]
} as AtGroupType, (res) => {
  console.log(res)
})

setC2CReceiveMessageOpt

设置单聊消息接收选项(免打扰 / 正常接收,异步方法)

tencentIM.setC2CReceiveMessageOpt(userList: string[], opt: number, callback: CallBack): void
参数名 类型 是否必填 描述
userList string[] 是 目标单聊用户 ID 列表(支持批量设置)
opt number 是 消息接收选项:- 0:正常接收消息- 1:消息免打扰(仅接收离线推送,不触发在线提醒)- 2:完全不接收该用户消息
callback CallBack 是 回调函数,返回设置结果,失败时返回错误信息
// 示例:设置对2个用户的单聊消息免打扰
tencentIM.setC2CReceiveMessageOpt([this.user2], 1, (res) => {
  console.log(res)
})

getC2CReceiveMessageOpt

获取单聊消息接收选项(查询免打扰状态,异步方法)

tencentIM.getC2CReceiveMessageOpt(userList: string[], callback: CallBack): void
参数名 类型 是否必填 描述
userList string[] 是 目标单聊用户 ID 列表(支持批量查询)
callback CallBack 是 回调函数,返回各用户的消息接收选项配置,失败时返回错误信息
// 示例:查询对2个用户的单聊消息接收状态
tencentIM.getC2CReceiveMessageOpt([this.user2,"ccc"], (res) => {
  console.log(res)
})

setGroupReceiveMessageOpt

设置群聊消息接收选项(免打扰 / 正常接收,异步方法)

tencentIM.setGroupReceiveMessageOpt(groupId: string, opt: number, callback: CallBack): void
参数名 类型 是否必填 描述
groupId string 是 目标群聊 ID
opt number 是 消息接收选项:- 0:正常接收群消息- 1:群消息免打扰(仅接收离线推送,不触发在线提醒)- 2:完全不接收该群消息- 3:仅接收 @我的群消息
callback CallBack 是 回调函数,返回设置结果,失败时返回错误信息
// 示例:设置群聊为“仅接收@我的消息”模式
tencentIM.setGroupReceiveMessageOpt("@TGS#2DY76VNO4", 1, (res) => {
  console.log(res)
})

getGroupsInfo

查询群聊信息(含消息接收选项等群属性,异步方法)

tencentIM.getGroupsInfo(groupIdList: string[], callback: CallBack): void
参数名 类型 是否必填 描述
groupIdList string[] 是 目标群聊 ID 列表(支持批量查询,空数组无返回结果)
callback CallBack 是 回调函数,成功时返回群聊信息列表,失败时返回错误信息
// 示例:批量查询群聊信息(含消息接收选项)
tencentIM.getGroupsInfo(["@TGS#2DY76VNO4"], (res) => {
  console.log(res)
})

setAllReceiveMessageOpt

设置全局消息接收选项(全局免打扰 / 时段免打扰,异步方法)

tencentIM.setAllReceiveMessageOpt(opt: number, startTimeStamp: number, duration: number, callback: CallBack): void
参数名 类型 是否必填 描述
opt number 是 全局消息接收选项:- 0:正常接收所有消息- 1:全局消息免打扰- 2:完全不接收所有消息
startTimeStamp number 是 生效起始时间戳(毫秒):- 立即生效传当前时间戳- 定时生效传指定时间戳
duration number 是 生效时长(毫秒):- 永久生效传 0- 时段生效传具体时长(如 3600000 表示 1 小时)
callback CallBack 是 回调函数,返回设置结果,失败时返回错误信息
// 示例1:设置全局永久免打扰
tencentIM.setAllReceiveMessageOpt1(1, 22, 0, 0, 3600, (res) => {
  console.log(res)
})

getAllReceiveMessageOpt

获取全局消息接收选项配置(异步方法)

tencentIM.getAllReceiveMessageOpt(callback: CallBack): void
参数名 类型 是否必填 描述
callback CallBack 是 回调函数,成功时返回全局消息接收选项(含生效时间、时长等),失败时返回错误信息
// 示例:查询全局消息接收选项
tencentIM.getAllReceiveMessageOpt((res) => {
  console.log(res)
})

translateText

文本翻译(多文本批量翻译,异步方法)

tencentIM.translateText(textList: string[], sourceLanguage: string, targetLanguage: string, callback: CallBack): void
参数名 类型 是否必填 描述
textList string[] 是 待翻译的文本列表(支持批量翻译,空数组无返回结果)
sourceLanguage string 是 源语言类型(参考腾讯 IM 语言编码:如 "zh" 中文、"en" 英文、"ja" 日文)
targetLanguage string 是 目标语言类型(编码规则同源语言)
callback CallBack 是 回调函数,成功时返回翻译结果列表,失败时返回错误信息
// 示例:批量翻译文本(中译英)
tencentIM.translateText(["你好", "再见"], "zh", "en", (res) => {
  console.log(res)
})

convertVoiceToText

语音消息转文字(异步方法)

tencentIM.convertVoiceToText(msgId: string, totext: string, callback: CallBack): void
参数名 类型 是否必填 描述
msgId string 是 待转换的语音消息唯一 ID(需为已发送 / 接收的语音消息 ID)
totext string 是 目标语言类型(参考腾讯 IM 语音转文字编码:如 "zh" 中文、"en" 英文)
callback CallBack 是 回调函数,成功时返回转换后的文字内容,失败时返回错误信息
// 示例:将语音消息转为中文文本
tencentIM.convertVoiceToText("144115244096204086-1763954756-4182929792", "yue-Hant-HK", (res) => {
  console.log(res)
})

getConversationAllList

一次性拉取所有会话列表(异步方法,自动分页直至拉取完成)

tencentIM.getConversationAllList(callback: CallBack): void
参数名 类型 是否必填 描述
callback CallBack 是 回调函数,成功时返回完整会话列表及分页标识,失败时返回错误信息

回调参数说明:

回调字段 类型 描述
code number 结果状态码:0 成功,非 0 失败
msg string 结果描述:成功为 "成功",失败为错误信息
data ConversationType[] 拉取到的会话列表(已通过 setConversation 格式化)
nextSeq number 下一页分页标记:- 0 表示已拉取完所有会话- 非 0 表示还有更多会话(该方法会自动拉取至 nextSeq=0)
isFinished boolean 是否拉取完成:true 表示所有会话已拉取,false 表示还有更多
// 示例:一次性拉取所有会话
tencentIM.getConversationAllList((res) => {
  console.log(res)
})

getConversationList

分页拉取会话列表(异步方法,支持指定分页起始位置和条数)

tencentIM.getConversationList(params: UTSJSONObject, callback: CallBack): void
参数名 类型 是否必填 描述
params UTSJSONObject 是 分页参数配置
callback CallBack 是 回调函数,成功时返回分页会话列表及分页标识,失败时返回错误信息

params 参数说明

参数名 类型 是否必填 描述
nextSeq number 是 分页起始标记:- 首次拉取传 0- 后续拉取传上一次返回的 nextSeq
count number 是 本次拉取的会话条数(分页大小,建议设置为 20/30 条)

回调参数说明:

回调字段 类型 描述
code number 结果状态码:0 成功,非 0 失败
msg string 结果描述:成功为 "成功",失败为错误信息
data ConversationType[] 本次拉取的会话列表(已通过 setConversation 格式化)
nextSeq number 下一页分页标记:0 表示已拉取完所有会话,非 0 表示还有更多
isFinished boolean 是否拉取完成:true 无更多会话,false 可继续分页拉取
// 示例1:首次分页拉取20条会话
let params = {
  nextSeq: 0,
  count: 20
}
tencentIM.getConversationList(params, (res) => {
  console.log(res)
})

getConversationListByFilter

按筛选条件分页拉取会话列表(会话高级查询接口,异步方法)

tencentIM.getConversationListByFilter(params: UTSJSONObject, callback: CallBack): void
参数名 类型 是否必填 描述
params UTSJSONObject 是 分页参数 + 筛选条件配置(底层转为 Map 传递给原生 SDK)
callback CallBack 是 回调函数,成功时返回筛选后的分页会话列表,失败时返回错误信息

params 参数说明

参数名 类型 是否必填 描述
nextSeq number 是 分页起始标记:- 首次拉取传 0- 后续拉取传上一次返回的 nextSeq
count number 是 本次拉取的会话条数(分页大小,建议 20-50 条)

回调参数说明:

回调字段 类型 描述
code number 结果状态码:0 成功,非 0 失败
msg string 结果描述:成功为 "成功",失败为错误信息
data ConversationType[] 筛选后拉取的会话列表(已通过 setConversation 格式化)
nextSeq number 下一页分页标记:0 表示无更多会话,非 0 表示可继续拉取
isFinished boolean 是否拉取完成:true 无更多符合条件的会话,false 可继续分页
// 示例1:筛选有未读消息的群聊会话(首次拉取20条)
tencentIM.getConversationListByFilter({
    nextSeq: 0,
    count: 20,
    type: "C2C"
  }, (res) => {
    console.log(res)
  })

getConversationOne

获取指定的单个会话信息(异步方法)

tencentIM.getConversationOne(conversationID: string, callback: CallBack): void
参数名 类型 是否必填 描述
conversationID string 是 会话唯一 ID(单聊会话 ID 格式:c2c_${userId},群聊会话 ID 格式:group_${groupId})
callback CallBack 是 回调函数,成功时返回单个会话详情,失败时返回错误信息

回调参数说明:

回调字段 类型 描述
code number 结果状态码:0 成功,非 0 失败
msg string 结果描述:成功为 "成功",失败为错误信息(如会话不存在)
data ConversationType 单个会话信息(已通过 setConversation 格式化)
// 示例1:获取单聊会话信息
tencentIM.getConversationOne("c2c_penglele", (res) => {
  console.log(res)
})

getConversationSeveral

批量获取指定的多个会话信息(异步方法)

tencentIM.getConversationSeveral(conversationIDList: string[], callback: CallBack): void
参数名 类型 是否必填 描述
conversationIDList string[] 是 会话 ID 列表(支持混合单聊 / 群聊会话 ID,空数组返回空列表)
callback CallBack 是 回调函数,成功时返回多个会话列表,失败时返回错误信息

回调参数说明:

回调字段 类型 描述
code number 结果状态码:0 成功,非 0 失败
msg string 结果描述:成功为 "成功",失败为错误信息
data ConversationType[] 多个会话信息列表(已通过 setConversation 格式化)
// 示例:批量获取多个会话信息
tencentIM.getConversationSeveral(["c2c_ale"], (res) => {
  console.log(res)
})

getTotalUnreadMessageCount

获取所有会话的未读消息总数(异步方法)

tencentIM.getTotalUnreadMessageCount(callback: CallBack): void
参数名 类型 是否必填 描述
callback CallBack 是 回调函数,成功时返回全局未读总数,失败时返回错误信息

回调参数说明:

回调字段 类型 描述
code number 结果状态码:0 成功,非 0 失败
count number 所有会话的未读消息总数(成功时返回,失败时无)
msg string 失败时的错误描述
// 示例:获取全局未读消息总数
tencentIM.getTotalUnreadMessageCount((res) => {
  console.log(res)
})

getUnreadMessageCountByFilter

按筛选条件获取未读消息总数(支持单聊 / 群聊分类统计,异步方法)

tencentIM.getUnreadMessageCountByFilter(params: UTSJSONObject, callback: CallBack): void
参数名 类型 是否必填 描述
params UTSJSONObject 是 筛选条件配置(底层转为 Map 传递给原生 SDK)
callback CallBack 是 回调函数,成功时返回筛选后的未读总数,失败时返回错误信息

回调参数说明:

回调字段 类型 描述
code number 结果状态码:0 成功,非 0 失败
count number 筛选后的未读消息总数(成功时返回)
msg string 失败时的错误描述
tencentIM.getUnreadMessageCountByFilter({
  nextSeq: 0,
  count: 20,
  type: "C2C"
}, (res) => {
  console.log(res)
})

cleanConversationUnreadMessageCount

清理指定会话的未读消息数(支持按时间 / 序列精准清理,异步方法)

tencentIM.cleanConversationUnreadMessageCount(params: UTSJSONObject, callback: CallBack): void
参数名 类型 是否必填 描述
params UTSJSONObject 是 清理参数配置
callback CallBack 是 回调函数,返回清理结果,失败时返回错误信息

params 参数说明

参数名 类型 是否必填 描述
conversationID string 是 目标会话 ID(单聊:c2c_${userId},群聊:group_${groupId})
cleanTimestamp number 是 清理时间戳(毫秒):- 传 0 清理该会话所有未读- 传指定时间戳清理该时间前的未读
cleanSequence number 是 清理序列值:- 传 0 配合 cleanTimestamp 使用- 原生 SDK 预留字段,通常传 0 即可
// 示例1:清理单聊会话所有未读消息数
tencentIM.cleanConversationUnreadMessageCount({
  conversationID: "c2c",
  cleanSequence: 0,
  cleanTimestamp: 0
}, (res) => {
  console.log(res)
})

pinConversation

置顶 / 取消置顶指定会话(异步方法)

tencentIM.pinConversation(conversationID: string, isPinned: boolean, callback: CallBack): void
参数名 类型 是否必填 描述
conversationID string 是 目标会话 ID(单聊 / 群聊均可)
isPinned boolean 是 是否置顶:- true:置顶会话- false:取消置顶
callback CallBack 是 回调函数,返回置顶 / 取消置顶结果,失败时返回错误信息
// 示例1:置顶单聊会话
tencentIM.pinConversation("c2c_ale", true, (res) => {
  console.log(res)
})

deleteConversation

删除单个会话(异步方法,删除后会话从列表移除,可保留消息)

tencentIM.deleteConversation(conversationID: string, callback: CallBack): void
参数名 类型 是否必填 描述
conversationID string 是 目标会话 ID(单聊 / 群聊均可)
callback CallBack 是 回调函数,返回删除结果,失败时返回错误信息
// 示例:删除单个单聊会话
tencentIM.deleteConversation("c2c_ale", (res) => {
  console.log(res)
})

deleteConversationList

批量删除多个会话(支持是否清空会话消息,异步方法)

tencentIM.deleteConversationList(conversationIDList: string[], clearMessage: boolean, callback: CallBack): void
参数名 类型 是否必填 描述
conversationIDList string[] 是 待删除的会话 ID 列表(支持混合单聊 / 群聊,空数组无操作)
clearMessage boolean 是 是否清空会话消息:- true:删除会话并清空该会话所有消息- false:仅删除会话,保留本地消息
callback CallBack 是 回调函数,返回批量删除结果,失败时返回错误信息

tencentIM.deleteConversationList(["c2c_ale"], true, (res) => {
  console.log(res)
})

setConversationDraft

设置指定会话的草稿内容(异步方法,草稿仅本地存储)

tencentIM.setConversationDraft(conversationID: string, draftText: string, callback: CallBack): void
参数名 类型 是否必填 描述
conversationID string 是 目标会话 ID(单聊:c2c_${userId},群聊:group_${groupId})
draftText string 是 草稿文本内容:- 传空字符串清空该会话草稿- 传具体文本设置 / 更新草稿
callback CallBack 是 回调函数,返回设置结果,失败时返回错误信息
// 示例1:设置单聊会话草稿
tencentIM.setConversationDraft("c2c_ale", "hahah", (res) => {
  console.log(res)
})

markConversation

标记 / 取消标记会话(支持批量标记,异步方法)

tencentIM.markConversation(params: UTSJSONObject, callback: CallBack): void
参数名 类型 是否必填 描述
params UTSJSONObject 是 标记参数配置
callback CallBack 是 回调函数,返回标记结果,失败时返回错误信息

params 参数说明

参数名 类型 是否必填 描述
conversationIDList string[] 是 待标记的会话 ID 列表(支持批量标记,空数组无操作)
type number 是 标记类型(参考腾讯 IM 原生定义):- 1:标记为已读- 2:标记为重要- 其他值参考官方文档
enableMark boolean 是 是否启用标记:- true:添加标记- false:取消标记

tencentIM.markConversation({
  conversationIDList: ["c2c_penglele"],
  type: 1,
  enableMark: true
}, (res) => {
  console.log(res)
})

createConversationGroup

新建会话分组并添加指定会话(异步方法,分组同步到云端)

tencentIM.createConversationGroup(params: UTSJSONObject, callback: CallBack): void
参数名 类型 是否必填 描述
params UTSJSONObject 是 分组创建参数
callback CallBack 是 回调函数,返回创建结果,失败时返回错误信息

params 参数说明

参数名 类型 是否必填 描述
groupName string 是 分组名称(不可重复,建议使用中文 / 英文命名,如 "工作群"、"亲友")
conversationIDList string[] 是 加入该分组的会话 ID 列表(支持混合单聊 / 群聊,空数组创建空分组)
// 示例:创建“项目组”分组并添加指定会话
tencentIM.createConversationGroup({
  groupName: "一家人",
  conversationIDList: ["c2c_ale"]
}, (res) => {
  console.log(res)
})

deleteConversationGroup

删除指定的会话分组(异步方法,仅删除分组,不删除会话)

tencentIM.deleteConversationGroup(groupName: string, callback: CallBack): void
参数名 类型 是否必填 描述
groupName string 是 待删除的分组名称(需与创建时的名称完全一致)
callback CallBack 是 回调函数,返回删除结果,失败时返回错误信息
// 示例:删除“项目组”会话分组
tencentIM.deleteConversationGroup("一家人", (res) => {
  console.log(res)
})

renameConversationGroup

重命名已创建的会话分组(异步方法,分组名称同步到云端)

tencentIM.renameConversationGroup(oldName: string, newName: string, callback: CallBack): void
参数名 类型 是否必填 描述
oldName string 是 原分组名称(需与已创建的分组名称完全一致)
newName string 是 新分组名称(不可与现有分组重名,建议使用中文 / 英文命名)
callback CallBack 是 回调函数,返回重命名结果,失败时返回错误信息(如分组不存在、名称重复)

tencentIM.renameConversationGroup("一家人", "两家人", (res) => {
  console.log(res)
})

getConversationGroupList

获取所有会话分组列表(异步方法,返回分组名称及分组内会话)

tencentIM.getConversationGroupList(callback: CallBack): void
参数名 类型 是否必填 描述
callback CallBack 是 回调函数,成功时返回分组列表,失败时返回错误信息

回调参数说明:

回调字段 类型 描述
code number 结果状态码:0 成功,非 0 失败
data Array<{name: string, conversationIDs: string[]}> 分组列表:- name:分组名称- conversationIDs:该分组下的会话 ID 列表
msg string 失败时的错误描述
// 示例:获取所有会话分组信息
tencentIM.getConversationGroupList((res) => {
  console.log(res)
})

addConversationsToGroup

将指定会话添加到已有分组(异步方法,支持批量添加)

tencentIM.addConversationsToGroup(groupName: string, conversationIDList: string[], callback: CallBack): void
参数名 类型 是否必填 描述
groupName string 是 目标分组名称(需已创建,名称需完全一致)
conversationIDList string[] 是 待添加的会话 ID 列表(支持混合单聊 / 群聊,空数组无操作)
callback CallBack 是 回调函数,返回添加结果,失败时返回错误信息(如分组不存在)
tencentIM.addConversationsToGroup("hh", ["c2c_ale"], (res) => {
  console.log(res)
})

deleteConversationsFromGroup

从指定分组中移除会话(异步方法,仅移除分组关系,不删除会话)

tencentIM.deleteConversationsFromGroup(groupName: string, conversationIDList: string[], callback: CallBack): void
参数名 类型 是否必填 描述
groupName string 是 目标分组名称(需已创建,名称需完全一致)
conversationIDList string[] 是 待移除的会话 ID 列表(支持批量移除,空数组无操作)
callback CallBack 是 回调函数,返回移除结果,失败时返回错误信息(如分组不存在、会话不在分组中)
tencentIM.deleteConversationsFromGroup("hh", ["c2c_ale"], (res) => {
  console.log(res)
})

createGroup

创建群组(支持指定群类型 / 群 ID / 群名称,异步方法)

tencentIM.createGroup(params: UTSJSONObject, callback: CallBack): void
参数名 类型 是否必填 描述
params UTSJSONObject 是 建群参数配置
callback CallBack 是 回调函数,成功时返回群信息,失败时返回错误信息(如群 ID 重复、权限不足)

params 参数说明

参数名 类型 是否必填 描述
type string 是 群类型(参考腾讯 IM 原生定义):- "Work":工作群- "Public":公开群- "Meeting":会议群- "Community":社群群- 其他值参考官方文档
groupID string 否 自定义群 ID(不传则由 SDK 自动生成,传值需保证唯一)
groupName string 是 群名称(必填,建议使用中文 / 英文命名,如 "产品讨论群")
tencentIM.createGroup({
  type: "Public",
  groupID: "00001",
  groupName: "相亲相爱一家人"
}, (res) => {
  console.log(res)
})

searchGroups

搜索群组(支持多关键词模糊匹配,异步方法)

tencentIM.searchGroups(keywordList: string[], callback: CallBack): void
参数名 类型 是否必填 描述
keywordList string[] 是 搜索关键词列表(支持多个关键词,空数组返回空列表):- 匹配群名称 / 群 ID / 群备注等字段- 多关键词为 “或” 关系(匹配任意一个关键词)
callback CallBack 是 回调函数,成功时返回匹配的群列表,失败时返回错误信息

回调参数说明:

回调字段 类型 描述
code number 结果状态码:0 成功,非 0 失败
data Array<{groupID: string, groupName: string, ...}> 匹配的群列表(包含群 ID、群名称、群类型等核心字段)
msg string 失败时的错误描述
tencentIM.searchGroups(["一家人"], (res) => {
  console.log(res)
})

joinGroup

主动申请加组(自由,异步方法)

tencentIM.joinGroup(params: UTSJSONObject, callback: CallBack): void
参数名 类型 是否必填 描述
params UTSJSONObject 是 ***参数配置
callback CallBack 是 回调函数,返回结果:- 公开群 / 自由:直接加入成功- 需要审核的群:返回 “申请已提交”- 失败:返回错误信息(如群不存在、禁止加入)

params 参数说明

参数名 类型 是否必填 描述
groupID string 是 目标群 ID
msg string 否 ***申请备注(仅需审核的群有效,如 "我是产品部 XXX,申请加入")
tencentIM.joinGroup({
  msg: "我是彭先生",
  groupID: "00001"
}, (res) => {
  console.log(res);
})

inviteUserToGroup

邀请用户加***组(异步方法,需有群邀请权限)

tencentIM.inviteUserToGroup(params: UTSJSONObject, callback: CallBack): void
参数名 类型 是否必填 描述
params UTSJSONObject 是 邀请***参数配置
callback CallBack 是 回调函数,返回邀请结果:- 成功:返回邀请成功的用户列表- 失败:返回错误信息(如无权限、用户不存在)

params 参数说明

参数名 类型 是否必填 描述
groupID string 是 目标群 ID(需有邀请权限,如群主 / 群管理员)
userList string[] 是 被邀请的用户 ID 列表(空数组无操作)
tencentIM.inviteUserToGroup({
  userList: [this.user2],
  groupID: "00001"
}, (res) => {
  console.log(res)
})

createGroupSenior

创建群组高级接口(支持自定义群配置 + 初始化群成员,异步方法)

tencentIM.createGroupSenior(params: UTSJSONObject, memberLists: UTSJSONObject[], callback: CallBack): void
参数名 类型 是否必填 描述
params UTSJSONObject 是 基础建群参数(底层转为 Map):- 包含 type(群类型)、groupID(自定义群 ID)、groupName(群名称)等核心字段- 支持原生 SDK 所有建群配置(如群公告、群简介、***审核方式等)
memberLists UTSJSONObject[] 否 初始化群成员列表(底层转为 List):- 每个元素为成员配置(如 userID(成员 ID)、role(角色:群主 / 管理员 / 普通成员)等)- 不传则仅创建空群
callback CallBack 是 回调函数,成功时返回群信息 + 初始化成员结果,失败时返回错误信息
tencentIM.createGroupSenior({
  groupType: "Public",
  groupName: "吃鸡大队",
  groupID: "00003",
  groupApproveOpt: "auth",
  notification: "xxxxxx",
  introduction: "xxxxxxxx",
  faceURL: "https://ts2.cn.mm.bing.net/th?id=OIP-C.JCEcaQJVR_vC2kgt6BGZlAAAAA&w=247&h=252&c=8&rs=1&qlt=90&o=6&dpr=2&pid=3.1&rm=2"
}, [{ userID: this.user2, role: 100 }], (res) => {
  console.log(res)
})

setGroupInfo

修改群组信息(支持批量更新群属性,异步方法)

tencentIM.setGroupInfo(params: UTSJSONObject, callback: CallBack): void
参数名 类型 是否必填 描述
params UTSJSONObject 是 群信息修改参数(底层转为 Map):- 必传 groupID(目标群 ID)- 可选字段:groupName(群名称)、introduction(群简介)、notification(群公告)、applyJoinOption(***审核方式)等原生支持的群属性
callback CallBack 是 回调函数,返回修改结果,失败时返回错误信息(如无权限、群不存在)
tencentIM.setGroupInfo({
    groupType: "Public",
    groupName: "吃鸡大队1",
    groupID: "00002",
    groupApproveOpt: "auth",
    notification: "xxxxxx",
    introduction: "xxxxxxxx",
    faceURL: "https://ts2.cn.mm.bing.net/th?id=OIP-C.JCEcaQJVR_vC2kgt6BGZlAAAAA&w=247&h=252&c=8&rs=1&qlt=90&o=6&dpr=2&pid=3.1&rm=2"
  }, (res) => {
    console.log(res)
  })

acceptGroupApplication

同意用户的***申请(需有群管理权限,异步方法)

tencentIM.acceptGroupApplication(params: UTSJSONObject, callback: CallBack): void
参数名 类型 是否必填 描述
params UTSJSONObject 是 同意***参数
callback CallBack 是 回调函数,返回同意结果,失败时返回错误信息(如无审核权限、申请不存在)

params 参数说明

参数名 类型 是否必填 描述
groupID string 是 目标群 ID
userID string 是 提交***申请的用户 ID
tencentIM.acceptGroupApplication({
  groupID: "00003",
  userId: this.user2
}, (res) => {
  console.log(res)
})

refuseGroupApplication

拒绝用户的***申请(需有群管理权限,异步方法)

tencentIM.refuseGroupApplication(params: UTSJSONObject, callback: CallBack): void
参数名 类型 是否必填 描述
params UTSJSONObject 是 拒绝***参数
callback CallBack 是 回调函数,返回拒绝结果,失败时返回错误信息

params 参数说明

参数名 类型 是否必填 描述
groupID string 是 目标群 ID
userID string 是 提交***申请的用户 ID
tencentIM.refuseGroupApplication({
  groupID: "00002",
  userId: this.user2
}, (res) => {
  console.log(res)
})

getJoinedGroupList

获取当前用户已加入的所有群组列表(异步方法)

tencentIM.getJoinedGroupList(callback: CallBack): void
参数名 类型 是否必填 描述
callback CallBack 是 回调函数,成功时返回已加入的群列表,失败时返回错误信息

回调参数说明:

回调字段 类型 描述
code number 结果状态码:0 成功,非 0 失败
msg string 结果描述:成功为 "成功",失败为错误信息
data GroupInfoType[] 已加入的群列表(已通过 setGroupInfoData 格式化,包含群 ID、群名称、群类型等核心字段)
tencentIM.getJoinedGroupList((res)=> {
  console.log(res)
})

dismissGroup

解散群组(仅群主可操作,异步方法,解散后所有成员退出群)

tencentIM.dismissGroup(groupID: string, callback: CallBack): void
参数名 类型 是否必填 描述
groupID string 是 目标群 ID(仅群主可调用,普通成员 / 管理员调用会返回权限错误)
callback CallBack 是 回调函数,返回解散结果,失败时返回错误信息(如无权限、群不存在)
tencentIM.dismissGroup("00001",(res)=> {
  console.log(res)
})

getGroupMemberList

分页获取群成员列表(支持按成员角色筛选,异步方法)

tencentIM.getGroupMemberList(params: UTSJSONObject, callback: CallBack): void
参数名 类型 是否必填 描述
params UTSJSONObject 是 分页 + 筛选参数配置
callback CallBack 是 回调函数,成功时返回群成员列表,失败时返回错误信息

params 参数说明

参数名 类型 是否必填 描述
groupID string 是 目标群 ID
type number 是 成员类型筛选(参考腾讯 IM 原生定义):- 0:所有成员- 1:群主- 2:管理员- 3:普通成员
nextSeq number 是 分页起始标记:- 首次拉取传 0- 后续拉取传上一次返回的 nextSeq(该方法未显式返回,需参考原生 SDK)

回调参数说明:

回调字段 类型 描述
code number 结果状态码:0 成功,非 0 失败
msg string 结果描述:成功为 "成功",失败为错误信息
data UTSJSONObject[] 群成员列表,包含字段:- isOnline:是否在线- joinTime:加入时间戳- muteUntil:禁言截止时间- role:成员角色(群主 / 管理员 / 普通成员)
 tencentIM.getGroupMemberList({
  groupID:"00002",
  type:1,
  nextSeq:0
},(res)=> {
  console.log(res)
})  

quitGroup

主动退出群组(异步方法,群主退出会转让群主 / 解散群,取决于群类型)

tencentIM.quitGroup(groupID: string, callback: CallBack): void
参数名 类型 是否必填 描述
groupID string 是 目标群 ID(普通成员可直接退出,群主退出需注意群规则)
callback CallBack 是 回调函数,返回退出结果,失败时返回错误信息(如群不存在)
tencentIM.quitGroup("00002",(res)=> {
   console.log(res)
 }) 

muteGroupMember

禁言指定群成员(支持设置禁言时长,异步方法)

tencentIM.muteGroupMember(params: UTSJSONObject, callback: CallBack): void
参数名 类型 是否必填 描述
params UTSJSONObject 是 禁言参数配置
callback CallBack 是 回调函数,返回禁言结果,失败时返回错误信息(如无权限、群不存在)

params 参数说明

参数名 类型 是否必填 描述
groupID string 是 目标群 ID
member string 是 被禁言的成员 ID
muteTime number 是 禁言时长(秒):- 传 0 表示永久禁言- 传正数表示指定时长(如 3600 表示 1 小时)
tencentIM.muteGroupMember({
  groupID:"00002",
  member:this.user2,
  muteTime:60
},(res)=> {
  console.log(res)
})  

muteAllGroupMembers

群内全体禁言 / 解除全体禁言(异步方法)

tencentIM.muteAllGroupMembers(groupID: string, isMute: boolean, callback: CallBack): void
参数名 类型 是否必填 描述
groupID string 是 目标群 ID(仅群主 / 管理员可操作)
isMute boolean 是 是否开启全体禁言:- true:开启全体禁言(仅管理员 / 群主可发言)- false:解除全体禁言
callback CallBack 是 回调函数,返回全体禁言 / 解除结果,失败时返回错误信息
tencentIM.muteAllGroupMembers("00002",true,(res)=> {
    console.log(res)
})

kickGroupMember

踢出群成员(支持批量踢人 + 设置拉黑时长,异步方法)

tencentIM.kickGroupMember(params: UTSJSONObject, callback: CallBack): void
参数名 类型 是否必填 描述
params UTSJSONObject 是 踢人参数配置
callback CallBack 是 回调函数,返回踢人结果,失败时返回错误信息

params 参数说明

参数名 类型 是否必填 描述
groupID string 是 目标群 ID(仅群主 / 管理员可操作)
memberList string[] 是 被踢出的成员 ID 列表(空数组无操作)
reason string 否 踢人原因(可选,成员会收到该原因通知)
duration number 是 拉黑时长(秒):- 传 0 表示仅踢出,不拉黑- 传正数表示踢出后拉黑指定时长(如 86400 表示 1 天)- 传 -1 表示永久拉黑
tencentIM.kickGroupMember({
   groupID:"00002",
   memberList:[this.user1],
   reason:"sd",
   duration:0
 },(res)=> {
   console.log(res)
 }) 

setGroupMemberRole

设置群成员角色(晋升 / 降级管理员,异步方法)

tencentIM.setGroupMemberRole(params: UTSJSONObject, callback: CallBack): void
参数名 类型 是否必填 描述
params UTSJSONObject 是 角色设置参数
callback CallBack 是 回调函数,返回角色设置结果,失败时返回错误信息

params 参数说明

参数名 类型 是否必填 描述
groupID string 是 目标群 ID(仅群主可操作)
member string 是 被修改角色的成员 ID
newRole number 是 新角色(参考腾讯 IM 原生定义):- 0:普通成员- 1:群主(仅可转让给其他成员)- 2:管理员
tencentIM.setGroupMemberRole({
   groupID:"00002",
   member:this.user2,
   newRole:100
},(res)=> {
  console.log(res)
})

transferGroupOwner

转让群主权限(仅原群主可操作,异步方法)

tencentIM.transferGroupOwner(params: UTSJSONObject, callback: CallBack): void
参数名 类型 是否必填 描述
params UTSJSONObject 是 转让参数配置
callback CallBack 是 回调函数,返回转让结果,失败时返回错误信息(如无权限、成员不存在)

params 参数说明

参数名 类型 是否必填 描述
groupID string 是 目标群 ID(仅原群主可调用)
member string 是 新群主的成员 ID(必须是该群现有成员,否则返回 “成员不存在” 错误)
tencentIM.transferGroupOwner({
   groupID:"00002",
   member:this.user1,
},(res)=> {
  console.log(res)
})

getGroupOnlineMemberCount

获取群内在线成员数量(异步方法)

tencentIM.getGroupOnlineMemberCount(groupID: string, callback: CallBack): void
参数名 类型 是否必填 描述
groupID string 是 目标群 ID(需为已加入的群,否则返回错误)
callback CallBack 是 回调函数,成功时返回在线人数,失败时返回错误信息

回调参数说明:

回调字段 类型 描述
code number 结果状态码:0 成功,非 0 失败
count number 群内在线成员数量(成功时返回)
msg string 失败时的错误描述
tencentIM.getGroupOnlineMemberCount("00002",(res)=> {
  console.log(res)
})

getGroupMembersInfo

批量获取指定群成员的详细资料(异步方法)

tencentIM.getGroupMembersInfo(params: UTSJSONObject, callback: CallBack): void
参数名 类型 是否必填 描述
params UTSJSONObject 是 查询参数配置
callback CallBack 是 回调函数,成功时返回成员资料列表,失败时返回错误信息

params 参数说明

参数名 类型 是否必填 描述
groupID string 是 目标群 ID
memberList string[] 是 待查询的成员 ID 列表(空数组返回空列表)

回调参数说明:

回调字段 类型 描述
code number 结果状态码:0 成功,非 0 失败
msg string 结果描述:成功为 "成功",失败为错误信息
data UTSJSONObject[] 成员资料列表,包含字段:- isOnline:是否在线- joinTime:加入时间戳- muteUntil:禁言截止时间- role:成员角色(群主 / 管理员 / 普通成员)
 tencentIM.getGroupMembersInfo({
    groupID:"00002",
    memberList:[this.user1],
  },(res)=> {
    console.log(res)
  })    

setGroupMemberInfo

修改群成员的自定义资料(异步方法,支持修改备注、昵称等)

tencentIM.setGroupMemberInfo(params: UTSJSONObject, callback: CallBack): void
参数名 类型 是否必填 描述
params UTSJSONObject 是 成员资料修改参数(底层转为 Map):- 必传 groupID(目标群 ID)、userID(成员 ID)- 可选字段:nameCard(群备注)、customInfo(自定义字段)等原生支持的成员属性
callback CallBack 是 回调函数,返回修改结果,失败时返回错误信息(如无权限、字段不支持修改)
tencentIM.setGroupMemberInfo({
  groupID:"00002",
  userID:this.user1,
  nameCard:"乐乐"
},(res)=> {
  console.log(res)
})  

getUsersInfo

查询当前登录用户的个人资料(异步方法)

tencentIM.getUsersInfo(callback: CallBack): void
参数名 类型 是否必填 描述
callback CallBack 是 回调函数,成功时返回自己的完整资料,失败时返回错误信息

回调参数说明:

回调字段 类型 描述
code number 结果状态码:0 成功,非 0 失败
data object 个人资料(包含 userID(用户 ID)、nickName(昵称)、avatarURL(头像)、gender(性别)、signature(个性签名)等字段)
msg string 失败时的错误描述
tencentIM.getUsersInfo((res)=> {
  console.log(res)
})

setSelfInfo

修改当前登录用户的个人资料(异步方法)

tencentIM.setSelfInfo(params: UTSJSONObject, callback: CallBack): void
参数名 类型 是否必填 描述
params UTSJSONObject 是 资料修改参数(底层转为 Map):- 支持修改 nickName(昵称)、avatarURL(头像 URL)、gender(性别)、signature(个性签名)、customInfo(自定义字段)等原生支持的字段- 无需传所有字段,仅传需要修改的字段即可
callback CallBack 是 回调函数,返回修改结果,失败时返回错误信息(如字段不支持修改、参数格式错误)
 tencentIM.setSelfInfo({
    selfSignature:"xxxxx",
    gender:1,
    role:200,
    level:100,
    birthday:19971205,
    allowType:1,
    nickName:"ll",
    faceURL:"",
    customInfo:"{id:1}",
  },(res)=> {
    console.log(res)
  })    

getOtherUsersInfo

批量获取非好友用户的公开资料(异步方法)

tencentIM.getOtherUsersInfo(userIDList: string[], callback: CallBack): void
参数名 类型 是否必填 描述
userIDList string[] 是 待查询的非好友用户 ID 列表(空数组返回空列表):- 仅能获取用户公开资料(如昵称、头像,隐私字段如手机号不可见)- 若用户设置 “仅好友可见”,则返回基础信息(仅用户 ID)
callback CallBack 是 回调函数,成功时返回非好友用户资料列表,失败时返回错误信息

回调参数说明:

回调字段 类型 描述
code number 结果状态码:0 成功,非 0 失败
data object[] 非好友用户资料列表:- 每个元素包含 userID、nickName、avatarURL 等公开字段- 无权限查看的用户仅返回 userID
msg string 失败时的错误描述
tencentIM.getOtherUsersInfo([this.user2],(res)=> {
 console.log(res)
})  

subscribeUserInfo

订阅非好友用户的资料变更(异步方法,订阅后可接收资料更新通知)

tencentIM.subscribeUserInfo(userIDList: string[], callback: CallBack): void
参数名 类型 是否必填 描述
userIDList string[] 是 待订阅的用户 ID 列表(空数组无操作):- 仅可订阅非好友用户- 订阅后,当该用户修改公开资料时,当前用户会收到资料变更通知
callback CallBack 是 回调函数,返回订阅结果,失败时返回错误信息(如用户不存在、订阅数超限)
tencentIM.subscribeUserInfo([this.user2],(res)=> {
  console.log(res)
})

unsubscribeUserInfo

取消订阅非好友用户的资料变更(异步方法,取消后不再接收该用户的资料更新通知)

tencentIM.unsubscribeUserInfo(userIDList: string[], callback: CallBack): void
参数名 类型 是否必填 描述
userIDList string[] 是 待取消订阅的用户 ID 列表(空数组无操作):- 仅可取消已订阅的非好友用户- 重复取消不存在的订阅不会报错
callback CallBack 是 回调函数,返回取消订阅结果,失败时返回错误信息(如用户不存在、权限不足)

回调参数说明:

回调字段 类型 描述
code number 结果状态码:0 成功,非 0 失败
successList string[] 取消订阅成功的用户 ID 列表(成功时返回)
failList string[] 取消订阅失败的用户 ID 列表(失败时返回,如未订阅的用户、不存在的用户)
msg string 失败时的错误描述
tencentIM.unsubscribeUserInfo([this.user2],(res)=> {
  console.log(res)
})

getUserStatus

查询指定用户的在线状态(支持批量查询,异步方法)

tencentIM.getUserStatus(userIDList: string[], callback: CallBack): void
参数名 类型 是否必填 描述
userIDList string[] 是 待查询状态的用户 ID 列表(空数组返回空列表):- 可查询自己 / 好友 / 非好友的状态(非好友需对方允许状态可见)- 单次查询数量建议不超过 50 个,避免请求超限
callback CallBack 是 回调函数,成功时返回用户状态列表,失败时返回错误信息

回调参数说明:

回调字段 类型 描述
code number 结果状态码:0 成功,非 0 失败
data object[] 用户状态列表,每个元素包含:- userID:用户 ID- status:在线状态(1 - 在线,2 - 离线,3 - 离开,4 - 忙碌,5 - 请勿打扰等)- lastOnlineTime:最后在线时间戳(离线时返回)
msg string 失败时的错误描述
 tencentIM.getUserStatus([this.user1],(res)=> {
  console.log(res)
})  

subscribeUserStatus

订阅指定用户的状态变更(异步方法,订阅后实时接收状态更新通知)

tencentIM.subscribeUserStatus(userIDList: string[], callback: CallBack): void
参数名 类型 是否必填 描述
userIDList string[] 是 待订阅状态的用户 ID 列表(空数组无操作):- 订阅后,用户状态变更时会触发 addIMSdkListener 的 onUserStatusChanged 事件- 订阅数量有上限(参考腾讯 IMSDK,通常单用户可订阅 200 人)
callback CallBack 是 回调函数,返回订阅结果,失败时返回错误信息(如用户不存在、订阅超限)

回调参数说明:

回调字段 类型 描述
code number 结果状态码:0 成功,非 0 失败
successList string[] 订阅成功的用户 ID 列表
failList string[] 订阅失败的用户 ID 列表(如用户不存在、已订阅、订阅超限)
msg string 失败时的错误描述
tencentIM.subscribeUserStatus([this.user1],(res)=> {
  console.log(res)
})  

unsubscribeUserStatus

取消订阅指定用户的状态变更(异步方法,取消后不再接收状态更新通知)

tencentIM.unsubscribeUserStatus(userIDList: string[], callback: CallBack): void
参数名 类型 是否必填 描述
userIDList string[] 是 待取消订阅的用户 ID 列表(空数组无操作):- 重复取消未订阅的用户不会报错- 取消后立即停止接收该用户的状态变更通知
callback CallBack 是 回调函数,返回取消订阅结果,失败时返回错误信息

回调参数说明:

回调字段 类型 描述
code number 结果状态码:0 成功,非 0 失败
successList string[] 取消订阅成功的用户 ID 列表
failList string[] 取消订阅失败的用户 ID 列表(如未订阅的用户、用户不存在)
msg string 失败时的错误描述
tencentIM.unsubscribeUserStatus([this.user1],(res)=> {
  console.log(res)
})  

addFriend

添加好友(支持设置备注、添加理由,异步方法)

tencentIM.addFriend(params: UTSJSONObject, callback: CallBack): void
参数名 类型 是否必填 描述
params UTSJSONObject 是 加好友参数(底层转为 Map),核心字段:- userID:被添加的用户 ID(必填)- remark:好友备注(可选,仅自己可见)- addSource:添加来源(可选,如 “搜索”“群聊”)- addWording:添加理由(可选,对方会收到该理由)- friendGroup:好友分组(可选,如 “亲友”“同事”)
callback CallBack 是 回调函数,返回加好友结果:- 无需审核:直接添加成功- 需要审核:返回 “申请已提交”- 失败:返回错误信息(如对方拒绝加好友、已在好友列表)
tencentIM.addFriend({
    userID:this.user2,
    friendRemark:"xx",
    friendGroup:"xx",
    addWording:"xx",
    addSource:"xxx",
    addType:1
  },(res)=> {
    console.log(res)
  })

deleteFromFriendList

从好友列表中删除指定好友(支持批量删除,异步方法)

tencentIM.deleteFromFriendList(userIDList: string[], type: number, callback: CallBack): void
参数名 类型 是否必填 描述
userIDList string[] 是 待删除的好友 ID 列表(空数组无操作)
type number 是 删除类型(参考腾讯 IM 原生定义):- 0:单向删除(仅自己移除对方,对方仍保留自己为好友)- 1:双向删除(双方互相移除好友)
callback CallBack 是 回调函数,返回删除结果,失败时返回错误信息(如好友不存在)

回调参数说明:

回调字段 类型 描述
code number 结果状态码:0 成功,非 0 失败
successList string[] 删除成功的好友 ID 列表
failList string[] 删除失败的好友 ID 列表(如非好友、用户不存在)
msg string 失败时的错误描述
tencentIM.deleteFromFriendList([this.user2],1,(res)=> {
 console.log(res)
})  

checkFriend

检查与指定用户的好友关系(支持批量检查,异步方法)

tencentIM.checkFriend(userIDList: string[], type: number, callback: CallBack): void
参数名 类型 是否必填 描述
userIDList string[] 是 待检查的用户 ID 列表(空数组返回空列表)
type number 是 检查类型(参考腾讯 IM 原生定义):- 0:检查是否为双向好友- 1:检查是否为单向好友(我加了对方,对方未***)- 2:检查是否为单向好友(对方加了我,我未加对方)
callback CallBack 是 回调函数,成功时返回好友关系结果,失败时返回错误信息

回调参数说明:

回调字段 类型 描述
code number 结果状态码:0 成功,非 0 失败
data object[] 好友关系列表,每个元素包含:- userID:用户 ID- relation:关系类型(0 - 非好友,1 - 双向好友,2 - 单向我加对方,3 - 单向对方***)
msg string 失败时的错误描述
tencentIM.checkFriend([this.user2],1,(res)=> {
  console.log(res)
})

getFriendsInfo

批量获取指定好友的详细资料(异步方法)

tencentIM.getFriendsInfo(userIDList: string[], callback: CallBack): void
参数名 类型 是否必填 描述
userIDList string[] 是 待查询的好友 ID 列表(空数组返回空列表):- 仅能查询已添加的好友- 可获取好友完整资料(含备注、分组、自定义字段等)
callback CallBack 是 回调函数,成功时返回好友资料列表,失败时返回错误信息

回调参数说明:

回调字段 类型 描述
code number 结果状态码:0 成功,非 0 失败
data object[] 好友资料列表,包含:- userID:用户 ID- nickName:昵称- remark:好友备注- friendGroup:好友分组- customInfo:自定义字段- 其他基础资料(头像、性别等)
msg string 失败时的错误描述
 tencentIM.getFriendsInfo([this.user2],(res)=> {
  console.log(res)
})

getFriendList

获取当前用户的全部好友列表(异步方法)

tencentIM.getFriendList(callback: CallBack): void
参数名 类型 是否必填 描述
callback CallBack 是 回调函数,成功时返回完整好友列表,失败时返回错误信息

回调参数说明:

回调字段 类型 描述
code number 结果状态码:0 成功,非 0 失败
data object[] 全部好友列表(结构同 getFriendsInfo 的 data 字段)
msg string 失败时的错误描述
tencentIM.getFriendList((res)=> {
  console.log(res)
})  

setFriendInfo

修改好友的自定义资料(仅自己可见,异步方法)

tencentIM.setFriendInfo(params: UTSJSONObject, callback: CallBack): void
参数名 类型 是否必填 描述
params UTSJSONObject 是 好友资料修改参数(底层转为 Map),核心字段:- userID:customInfo:自定义备注字段(可选,需提前配置)
callback CallBack 是 回调函数,返回修改结果,失败时返回错误信息(如非好友、参数无效)
tencentIM.setFriendInfo({
      userID:this.user2,
      friendRemark:"xx",
      // friendCustomInfo:"{id:1}"
    },(res)=> {
      console.log(res)
    })

createFriendGroup

新建好友分组并添加指定好友(异步方法)

tencentIM.createFriendGroup(groupName: string, userIDList: string[], callback: CallBack): void
参数名 类型 是否必填 描述
groupName string 是 分组名称(不可重复,如 “亲友”“客户”,重复创建会返回错误)
userIDList string[] 是 加入该分组的好友 ID 列表(空数组创建空分组,非好友 ID 会过滤)
callback CallBack 是 回调函数,返回创建结果,失败时返回错误信息(如名称重复)
tencentIM.createFriendGroup("哈哈",[this.user2],(res)=> {
  console.log(res)
})  

deleteFriendGroup

删除指定好友分组(异步方法,分组删除后好友回到 “未分组”)

tencentIM.deleteFriendGroup(groupNameList: string[], callback: CallBack): void
参数名 类型 是否必填 描述
groupNameList string[] 是 待删除的分组名称列表(空数组无操作,不存在的分组会过滤)
callback CallBack 是 回调函数,返回删除结果,失败时返回错误信息
tencentIM.deleteFriendGroup(["哈哈"],(res)=> {
  console.log(res)
})  

renameFriendGroup

重命名好友分组(异步方法)

tencentIM.renameFriendGroup(oldName: string, newName: string, callback: CallBack): void
参数名 类型 是否必填 描述
oldName string 是 原分组名称(需已存在,否则返回 “分组不存在” 错误)
newName string 是 新分组名称(不可与现有分组重复,否则返回错误)
callback CallBack 是 回调函数,返回重命名结果,失败时返回错误信息
 tencentIM.renameFriendGroup("哈哈","嘻嘻",(res)=> {
                    console.log(res)
  })    

getFriendGroups

获取指定好友分组的详情(异步方法,返回分组名称 + 分组内好友)

tencentIM.getFriendGroups(groupNameList: string[], callback: CallBack): void
参数名 类型 是否必填 描述
groupNameList string[] 是 待查询的分组名称列表:- 传空数组返回所有分组- 传具体分组名返回指定分组详情
callback CallBack 是 回调函数,成功时返回分组列表,失败时返回错误信息

回调参数说明:

回调字段 类型 描述
code number 结果状态码:0 成功,非 0 失败
data Array<{groupName: string, userIDList: string[]}> 分组详情列表:- groupName:分组名称- userIDList:该分组下的好友 ID 列表
msg string 失败时的错误描述
tencentIM.getFriendGroups(["哈哈"],(res)=> {
  console.log(res)
})

addFriendsToFriendGroup

将指定好友添加到已有好友分组(支持批量添加,异步方法)

tencentIM.addFriendsToFriendGroup(groupID: string, userIDList: string[], callback: CallBack): void
参数名 类型 是否必填 描述
groupID string 是 目标分组名称(需已创建,名称需完全一致,如 “研发核心”)
userIDList string[] 是 待添加的好友 ID 列表(空数组无操作,非好友 ID 会过滤)
callback CallBack 是 回调函数,返回添加结果,失败时返回错误信息(如分组不存在)
tencentIM.addFriendsToFriendGroup("00002",[this.user2],(res)=> {
  console.log(res)
})  

deleteFriendsFromFriendGroup

从指定好友分组中移除好友(支持批量移除,异步方法,仅移除分组关系,不删除好友)

tencentIM.deleteFriendsFromFriendGroup(groupID: string, userIDList: string[], callback: CallBack): void
参数名 类型 是否必填 描述
groupID string 是 目标分组名称(需已创建,名称需完全一致)
userIDList string[] 是 待移除的好友 ID 列表(空数组无操作,不在该分组的好友会过滤)
callback CallBack 是 回调函数,返回移除结果,失败时返回错误信息
tencentIM.deleteFriendsFromFriendGroup("00002",[this.user2],(res)=> {
  console.log(res)
})  

addToBlackList

拉黑指定用户(支持批量拉黑,异步方法,拉黑后无法接收对方消息 / 加好友请求)

tencentIM.addToBlackList(userIDList: string[], callback: CallBack): void
参数名 类型 是否必填 描述
userIDList string[] 是 待拉黑的用户 ID 列表(空数组无操作,可拉黑好友 / 非好友)
callback CallBack 是 回调函数,返回拉黑结果,失败时返回错误信息(如用户不存在)

回调参数说明:

回调字段 类型 描述
code number 结果状态码:0 成功,非 0 失败
successList string[] 拉黑成功的用户 ID 列表
failList string[] 拉黑失败的用户 ID 列表(如用户不存在)
msg string 失败时的错误描述
tencentIM.addToBlackList([this.user2],(res)=> {
  console.log(res)
})  

deleteFromBlackList

解除对指定用户的拉黑(支持批量解除,异步方法)

tencentIM.deleteFromBlackList(userIDList: string[], callback: CallBack): void
参数名 类型 是否必填 描述
userIDList string[] 是 待解除拉黑的用户 ID 列表(空数组无操作,未拉黑的用户会过滤)
callback CallBack 是 回调函数,返回解除拉黑结果,失败时返回错误信息
tencentIM.deleteFromBlackList([this.user2],(res)=> {
  console.log(res)
})  

followUser

关注指定用户(支持批量关注,异步方法,关注后可接收用户动态 / 状态变更等通知)

tencentIM.followUser(userIDList: string[], callback: CallBack): void
参数名 类型 是否必填 描述
userIDList string[] 是 待关注的用户 ID 列表(空数组无操作,重复关注不会报错)
callback CallBack 是 回调函数,返回关注结果,失败时返回错误信息(如用户不存在、关注数超限)
tencentIM.followUser([this.user2],(res)=> {
  console.log(res)
})  

unfollowUser

取消关注指定用户(支持批量取消,异步方法,取消后不再接收该用户的动态 / 状态变更通知)

tencentIM.unfollowUser(userIDList: string[], callback: CallBack): void
参数名 类型 是否必填 描述
userIDList string[] 是 待取消关注的用户 ID 列表(空数组无操作,未关注的用户会过滤)
callback CallBack 是 回调函数,返回取消关注结果,失败时返回错误信息(如用户不存在)

回调参数说明:

回调字段 类型 描述
code number 结果状态码:0 成功,非 0 失败
successList string[] 取消关注成功的用户 ID 列表
failList string[] 取消关注失败的用户 ID 列表(如未关注的用户、用户不存在)
msg string 失败时的错误描述
tencentIM.unfollowUser([this.user2],(res)=> {
    console.log(res)
  })    

getMyFollowingList

分页获取当前用户的关注列表(异步方法,支持游标分页加载)

tencentIM.getMyFollowingList(cursor: string, callback: CallBack): void
参数名 类型 是否必填 描述
cursor string 是 分页游标:- 首次查询传空字符串("")- 后续查询传上一次返回的 nextCursor,返回空表示已加载完所有数据
callback CallBack 是 回调函数,成功时返回关注列表 + 分页游标,失败时返回错误信息

回调参数说明:

回调字段 类型 描述
code number 结果状态码:0 成功,非 0 失败
data object[] 关注用户列表,每个元素包含 userID、nickName、avatarURL 等公开字段
nextCursor string 下一页游标(空字符串表示无更多数据)
msg string 失败时的错误描述
tencentIM.getMyFollowingList("",(res)=> {
 console.log(res)
})  

getMyFollowersList

分页获取当前用户的粉丝列表(异步方法,支持游标分页加载)

tencentIM.getMyFollowersList(cursor: string, callback: CallBack): void
参数名 类型 是否必填 描述
cursor string 是 分页游标:- 首次查询传空字符串- 后续查询传上一次返回的 nextCursor
callback CallBack 是 回调函数,成功时返回粉丝列表 + 分页游标,失败时返回错误信息

回调参数说明:

回调字段 类型 描述
code number 结果状态码:0 成功,非 0 失败
data object[] 粉丝用户列表,包含 userID、nickName 等公开字段
nextCursor string 下一页游标(空表示无更多数据)
msg string 失败时的错误描述
tencentIM.getMyFollowersList("",(res)=> {
  console.log(res)
  })

getUserFollowInfo

批量获取指定用户与当前用户的互相关注信息(异步方法)

tencentIM.getUserFollowInfo(userIDList: string[], callback: CallBack): void
参数名 类型 是否必填 描述
userIDList string[] 是 待查询的用户 ID 列表(空数组返回空列表)
callback CallBack 是 回调函数,成功时返回互相关注信息,失败时返回错误信息

回调参数说明:

回调字段 类型 描述
code number 结果状态码:0 成功,非 0 失败
data object[] 互相关注信息列表,每个元素包含:- userID:用户 ID- isFollowing:是否关注该用户- isFollower:该用户是否关注自己- isMutual:是否互相关注
msg string 失败时的错误描述
tencentIM.getUserFollowInfo([this.user2],(res:any)=> {
  console.log(res)
})

checkFollowType

检查当前用户与指定用户的关注关系类型(异步方法)

tencentIM.checkFollowType(userIDList: string[], callback: CallBack): void
参数名 类型 是否必填 描述
userIDList string[] 是 待检查的用户 ID 列表(空数组返回空列表)
callback CallBack 是 回调函数,成功时返回关注关系类型,失败时返回错误信息

回调参数说明:

回调字段 类型 描述
code number 结果状态码:0 成功,非 0 失败
data object[] 关注关系类型列表,每个元素包含:- userID:用户 ID- followType:关系类型(0 - 无关系,1 - 我关注对方,2 - 对方关注我,3 - 互相关注)
msg string 失败时的错误描述
tencentIM.checkFollowType([this.user2],(res)=> {
  console.log(res)
})

新增下载视频、封面图、录音地址

downloadVideo() {
    tencentIM.downloadVideo("144115247769404501-1770004377-947900547",(res:UTSJSONObject)=> {
        console.log(res)
        let c =  res['data'] as UTSJSONObject;
        this.videoUrl = c['path']
    })  
},
downloadSnapic() {
    tencentIM.downloadSnapshot("144115247769404501-1770004377-947900547",(res:UTSJSONObject)=> {
        console.log(res)
        let c =  res['data'] as UTSJSONObject;
        this.snapshotUrl = c['path']
    })  
},
downloadSound() {
    tencentIM.downloadSound("144115247769404501-1770016274-2395576992",(res)=> {
        console.log(res)
        let c =  res['data'] as UTSJSONObject;
        playAudio({
             path:c['path'] as string,
             success: (res) => {
                 console.log(res);
             }
        } as PlayAudioOptions);
    })  
},

隐私、权限声明

1. 本插件需要申请的系统权限列表:

无

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

无

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

无