IMSDK
即时通信 IM 提供全球接入、单聊、群聊、消息推送、资料关系链托管、帐号鉴权等全方位解决方案,并提供完备的 App 接入、后台管理接口。
V2TIMManager

构造函数

(BOOL) - initSDK:config:listener:
 
(void) - unInitSDK
 
(NSString *) - getVersion
 
(uint64_t) - getServerTime
 
(void) - login:userSig:succ:fail:
 
(void) - logout:fail:
 
(NSString *) - getLoginUser
 
(V2TIMLoginStatus- getLoginStatus
 
(void) - addSimpleMsgListener:
 
(void) - removeSimpleMsgListener:
 
(NSString *) - sendC2CTextMessage:to:succ:fail:
 
(NSString *) - sendC2CCustomMessage:to:succ:fail:
 
(NSString *) - sendGroupTextMessage:to:priority:succ:fail:
 
(NSString *) - sendGroupCustomMessage:to:priority:succ:fail:
 
(void) - setGroupListener:
 
(void) - createGroup:groupID:groupName:succ:fail:
 
(void) - joinGroup:msg:succ:fail:
 
(void) - quitGroup:succ:fail:
 
(void) - dismissGroup:succ:fail:
 
(void) - getUsersInfo:succ:fail:
 
(void) - setSelfInfo:succ:fail:
 

类方法

(V2TIMManager *) + sharedInstance
 

成员类型定义说明

◆ V2TIMSucc

- (typedef void(^ V2TIMSucc) (void))
protected

成功通用回调

◆ V2TIMFail

- (typedef void(^ V2TIMFail) (int code, NSString *desc))
protected

失败通用回调

◆ V2TIMCreateGroupSucc

- (typedef void(^ V2TIMCreateGroupSucc) (NSString *groupID))
protected

创建群组成功回调

◆ V2TIMUserFullInfoListSucc

- (typedef void(^ V2TIMUserFullInfoListSucc) (NSArray< V2TIMUserFullInfo * > *infoList))
protected

获取用户资料成功回调

成员枚举类型说明

◆ V2TIMLoginStatus

- (enum V2TIMLoginStatus) :
protected

登录状态

枚举值
V2TIM_STATUS_LOGINED 

已登录

V2TIM_STATUS_LOGINING 

登录中

V2TIM_STATUS_LOGOUT 

无登录

◆ V2TIMLogLevel

- (enum V2TIMLogLevel) :
protected

日志级别

枚举值
V2TIM_LOG_NONE 

不输出任何 sdk log

V2TIM_LOG_DEBUG 

输出 DEBUG,INFO,WARNING,ERROR 级别的 log

V2TIM_LOG_INFO 

输出 INFO,WARNING,ERROR 级别的 log

V2TIM_LOG_WARN 

输出 WARNING,ERROR 级别的 log

V2TIM_LOG_ERROR 

输出 ERROR 级别的 log

◆ V2TIMMessagePriority

- (enum V2TIMMessagePriority) :
protected

消息优先级

枚举值
V2TIM_PRIORITY_DEFAULT 

默认

V2TIM_PRIORITY_HIGH 

高优先级,一般用于礼物等重要消息

V2TIM_PRIORITY_NORMAL 

常规优先级,一般用于普通消息

V2TIM_PRIORITY_LOW 

低优先级,一般用于点赞消息

◆ V2TIMGender

- (enum V2TIMGender) :
protected

性别

枚举值
V2TIM_GENDER_UNKNOWN 

未知性别

V2TIM_GENDER_MALE 

男性

V2TIM_GENDER_FEMALE 

女性

◆ V2TIMFriendAllowType

- (enum V2TIMFriendAllowType) :
protected

好友验证方式

枚举值
V2TIM_FRIEND_ALLOW_ANY 

同意任何用户加好友

V2TIM_FRIEND_NEED_CONFIRM 

需要验证

V2TIM_FRIEND_DENY_ANY 

拒绝任何人加好友

◆ V2TIMGroupMemberRole

- (enum V2TIMGroupMemberRole) :
protected

群成员角色

枚举值
V2TIM_GROUP_MEMBER_UNDEFINED 

未定义(没有获取该字段)

V2TIM_GROUP_MEMBER_ROLE_MEMBER 

群成员

V2TIM_GROUP_MEMBER_ROLE_ADMIN 

群管理员

V2TIM_GROUP_MEMBER_ROLE_SUPER 

群主

函数文档

◆ sharedInstance()

+ (V2TIMManager*) sharedInstance

1.1 获取 V2TIMManager 管理器实例

◆ initSDK:config:listener:()

- (BOOL) initSDK: (int)  sdkAppID
config: (V2TIMSDKConfig *)  config
listener: (id< V2TIMSDKListener >)  listener 

1.2 初始化 SDK

参数
sdkAppID应用 ID,必填项,可以在 控制台 中获取
config配置信息
返回
YES:成功;NO:失败

◆ unInitSDK()

- (void) unInitSDK

1.3 反初始化 SDK

◆ getVersion()

- (NSString*) getVersion

1.4 获取版本号

返回
返回版本号,字符串表示,例如 5.0.10

◆ getServerTime()

- (uint64_t) getServerTime

1.5 获取服务器当前时间

可用于信令离线推送场景下超时判断。

示例代码请参考 TUIKit: 信令邀请方:TUICall+Signal.m -> getOfflinePushInfo 设置邀请的服务器时间 serverTime 。 信令接收方:AppDelegate.m -> didReceiveRemoteNotification,收到信令推送,根据 serverTime 判断信令是否超时 。

返回
服务器时间,单位 s

◆ login:userSig:succ:fail:()

- (void) login: (NSString *)  userID
userSig: (NSString *)  userSig
succ: (V2TIMSucc succ
fail: (V2TIMFail fail 

2.1 登录

登录需要设置用户名 userID 和用户签名 userSig,userSig 生成请参考 UserSig 后台 API

注意
请注意如下特殊逻辑:
  • 登陆时票据过期:login 函数的 V2TIMFail 会返回 ERR_USER_SIG_EXPIRED:6206 错误码,此时生成新的 userSig 重新登录。
  • 在线时票据过期:用户在线期间也可能收到 V2TIMSDKListener -> onUserSigExpired 回调,此时也是需要您生成新的 userSig 并重新登录。
  • 在线时被踢下线:用户在线情况下被踢,SDK 会通过 V2TIMSDKListener -> onKickedOffline 回调通知给您,此时可以 UI 提示用户,并再次调用 login() 重新登录。

◆ logout:fail:()

- (void) logout: (V2TIMSucc succ
fail: (V2TIMFail fail 

2.2 登出

退出登录,如果切换账号,需要 logout 回调成功或者失败后才能再次 login,否则 login 可能会失败。

◆ getLoginUser()

- (NSString *) getLoginUser

2.3 获取登录用户

◆ getLoginStatus()

- (V2TIMLoginStatus) getLoginStatus

2.4 获取登录状态

如果用户已经处于已登录和登录中状态,请勿再频繁调用登录接口登录。

◆ addSimpleMsgListener:()

- (void) addSimpleMsgListener: (id< V2TIMSimpleMsgListener >)  listener

3.1 设置基本消息(文本消息和自定义消息)的事件监听器

注意
图片消息、视频消息、语音消息等高级消息的监听,请参考 V2TIMManager+Message.h -> addAdvancedMsgListener 接口。

◆ removeSimpleMsgListener:()

- (void) removeSimpleMsgListener: (id< V2TIMSimpleMsgListener >)  listener

3.2 移除基本消息(文本消息和自定义消息)的事件监听器

◆ sendC2CTextMessage:to:succ:fail:()

- (NSString*) sendC2CTextMessage: (NSString *)  text
to: (NSString *)  userID
succ: (V2TIMSucc succ
fail: (V2TIMFail fail 

3.3 发送单聊普通文本消息(最大支持 8KB)

文本消息支持云端的脏词过滤,如果用户发送的消息中有敏感词,V2TIMFail 回调将会返回 80001 错误码。

返回
返回消息的唯一标识 ID
注意
该接口发送的消息默认会推送(前提是在 V2TIMManager+APNS.h 开启了推送),如果需要自定义推送(自定义推送声音,推送 Title 等),请调用 V2TIMManager+Message.h -> sendMessage 接口。

◆ sendC2CCustomMessage:to:succ:fail:()

- (NSString*) sendC2CCustomMessage: (NSData *)  customData
to: (NSString *)  userID
succ: (V2TIMSucc succ
fail: (V2TIMFail fail 

3.4 发送单聊自定义(信令)消息(最大支持 8KB)

自定义消息本质就是一端二进制 buffer,您可以在其上自由组织自己的消息格式(常用于发送信令),但是自定义消息不支持云端敏感词过滤。

返回
返回消息的唯一标识 ID
注意
该接口发送的消息默认不会推送,如果需要推送,请调用 V2TIMManager+Message.h -> sendMessage 接口。

◆ sendGroupTextMessage:to:priority:succ:fail:()

- (NSString*) sendGroupTextMessage: (NSString *)  text
to: (NSString *)  groupID
priority: (V2TIMMessagePriority priority
succ: (V2TIMSucc succ
fail: (V2TIMFail fail 

3.5 发送群聊普通文本消息(最大支持 8KB)

参数
priority设置消息的优先级,我们没有办法所有消息都能 100% 送达每一个用户,但高优先级的消息会有更高的送达成功率。
  • HIGH :云端会优先传输,适用于在群里发送重要消息,比如主播发送的文本消息等。
  • NORMAL :云端按默认优先级传输,适用于在群里发送普通消息,比如观众发送的弹幕消息等。
返回
返回消息的唯一标识 ID
注意
该接口发送的消息默认会推送(前提是在 V2TIMManager+APNS.h 开启了推送),如果需要自定义推送(自定义推送声音,推送 Title 等),请调用 V2TIMManager+Message.h -> sendMessage 接口。

◆ sendGroupCustomMessage:to:priority:succ:fail:()

- (NSString*) sendGroupCustomMessage: (NSData *)  customData
to: (NSString *)  groupID
priority: (V2TIMMessagePriority priority
succ: (V2TIMSucc succ
fail: (V2TIMFail fail 

3.6 发送群聊自定义(信令)消息(最大支持 8KB)

参数
priority设置消息的优先级,我们没有办法所有消息都能 100% 送达每一个用户,但高优先级的消息会有更高的送达成功率。
  • HIGH :云端会优先传输,适用于在群里发送重要信令,比如连麦邀请,PK邀请、礼物赠送等关键性信令。
  • NORMAL :云端按默认优先级传输,适用于在群里发送非重要信令,比如观众的点赞提醒等等。
返回
返回消息的唯一标识 ID
注意
该接口发送的消息默认不会推送,如果需要推送,请调用 V2TIMManager+Message.h -> sendMessage 接口。

◆ setGroupListener:()

- (void) setGroupListener: (id< V2TIMGroupListener >)  listener

4.1 设置群组监听器

◆ createGroup:groupID:groupName:succ:fail:()

- (void) createGroup: (NSString *)  groupType
groupID: (NSString *)  groupID
groupName: (NSString *)  groupName
succ: (V2TIMCreateGroupSucc succ
fail: (V2TIMFail fail 

4.2 创建群组

参数
groupType群类型,我们为您预定义好了四种常用的群类型,您也可以在控制台定义自己需要的群类型:
  • "Work" :工作群,成员上限 200 人,不支持由用户主动加入,需要他人邀请入群,适合用于类似微信中随意组建的工作群(对应老版本的 Private 群)。
  • "Public" :公开群,成员上限 2000 人,任何人都可以申请加群,但加群需群主或管理员审批,适合用于类似 QQ 中由群主管理的兴趣群。
  • "Meeting" :会议群,成员上限 6000 人,任何人都可以自由进出,且加群无需被审批,适合用于视频会议和在线培训等场景(对应老版本的 ChatRoom 群)。
  • "AVChatRoom" :直播群,人数无上限,任何人都可以自由进出,消息吞吐量大,适合用作直播场景中的高并发弹幕聊天室。
groupID自定义群组 ID,可以传 nil。传 nil 时系统会自动分配 groupID,并通过 succ 回调返回
groupName群名称,不能为 nil
注意
请注意如下特殊逻辑:
  • 不支持在同一个 SDKAPPID 下创建两个相同 groupID 的群

◆ joinGroup:msg:succ:fail:()

- (void) joinGroup: (NSString *)  groupID
msg: (NSString *)  msg
succ: (V2TIMSucc succ
fail: (V2TIMFail fail 

4.3 加入群组

注意
请注意如下特殊逻辑:
  • 工作群(Work):不能主动入群,只能通过群成员调用 V2TIMManager+Group.h -> inviteUserToGroup 接口邀请入群。
  • 公开群(Public):申请入群后,需要管理员审批,管理员在收到 V2TIMGroupListener -> onReceiveJoinApplication 回调后调用 V2TIMManager+Group.h -> getGroupApplicationList 接口处理加群请求。
  • 其他群:可以直接入群。

◆ quitGroup:succ:fail:()

- (void) quitGroup: (NSString *)  groupID
succ: (V2TIMSucc succ
fail: (V2TIMFail fail 

4.4 退出群组

注意
在公开群(Public)、会议(Meeting)和直播群(AVChatRoom)中,群主是不可以退群的,群主只能调用 dismissGroup 解散群组。

◆ dismissGroup:succ:fail:()

- (void) dismissGroup: (NSString *)  groupID
succ: (V2TIMSucc succ
fail: (V2TIMFail fail 

4.5 解散群组

注意
请注意如下特殊逻辑:
  • Work:任何人都无法解散群组。
  • 其他群:群主可以解散群组。

◆ getUsersInfo:succ:fail:()

- (void) getUsersInfo: (NSArray< NSString * > *)  userIDList
succ: (V2TIMUserFullInfoListSucc succ
fail: (V2TIMFail fail 

5.1 获取用户资料

注意
请注意:
  • 获取自己的资料,传入自己的 ID 即可。
  • userIDList 建议一次最大 100 个,因为数量过多可能会导致数据包太大被后台拒绝,后台限制数据包最大为 1M。

◆ setSelfInfo:succ:fail:()

- (void) setSelfInfo: (V2TIMUserFullInfo *)  Info
succ: (V2TIMSucc succ
fail: (V2TIMFail fail 

5.2 修改个人资料