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

构造函数

(void) - addSignalingListener:
 
(void) - removeSignalingListener:
 
(NSString *) - invite:data:onlineUserOnly:offlinePushInfo:timeout:succ:fail:
 
(NSString *) - inviteInGroup:inviteeList:data:onlineUserOnly:timeout:succ:fail:
 
(void) - cancel:data:succ:fail:
 
(void) - accept:data:succ:fail:
 
(void) - reject:data:succ:fail:
 
(V2TIMSignalingInfo *) - getSignallingInfo:
 
(void) - addInvitedSignaling:succ:fail:
 

成员类型定义说明

◆ V2TIMSignalingInfoSucc

- (typedef void(^ V2TIMSignalingInfoSucc) (V2TIMSignalingInfo *signalInfo))
protected

获取信令信息成功回调

函数文档

◆ addSignalingListener:()

- (void) addSignalingListener: (addSignalingListener(listener:))  NS_SWIFT_NAME

添加信令监听

◆ removeSignalingListener:()

- (void) removeSignalingListener: (removeSignalingListener(listener:))  NS_SWIFT_NAME

移除信令监听

◆ invite:data:onlineUserOnly:offlinePushInfo:timeout:succ:fail:()

- (NSString*) invite: (NSString *)  invitee
data: (NSString *)  data
onlineUserOnly: (BOOL)  onlineUserOnly
offlinePushInfo: (V2TIMOfflinePushInfo *)  offlinePushInfo
timeout: (int)  timeout
succ: (V2TIMSucc)  succ
fail: (V2TIMFail)  fail 

邀请某个人

参数
invitee被邀请人用户 ID
data自定义数据
timeout超时时间,单位 s,如果设置为 0,SDK 不会做超时检测,也不会触发 onInvitationTimeout 回调
onlineUserOnly是否只有在线用户才能收到邀请,如果设置为 YES,只有在线用户才能收到,并且 invite 操作也不会产生历史消息(针对该次 invite 的后续 cancel、accept、reject、timeout 操作也同样不会产生历史消息)。
offlinePushInfo苹果 APNS 离线推送时携带的标题和声音,其中 desc 为必填字段,推送的时候会默认展示 desc 信息。
返回
inviteID 邀请 ID,如果邀请失败,返回 nil

◆ inviteInGroup:inviteeList:data:onlineUserOnly:timeout:succ:fail:()

- (NSString*) inviteInGroup: (NSString *)  groupID
inviteeList: (NSArray *)  inviteeList
data: (NSString *)  data
onlineUserOnly: (BOOL)  onlineUserOnly
timeout: (int)  timeout
succ: (V2TIMSucc)  succ
fail: (V2TIMFail)  fail 

邀请群内的某些人

参数
groupID发起邀请所在群组
inviteeList被邀请人列表,inviteeList 必须已经在 groupID 群里,否则邀请无效
timeout超时时间,单位 s,如果设置为 0,SDK 不会做超时检测,也不会触发 onInvitationTimeout 回调
onlineUserOnly是否只有在线用户才能收到邀请,如果设置为 YES,只有在线用户才能收到,并且 invite 操作也不会产生历史消息(针对该次 invite 的后续 cancel、accept、reject、timeout 操作也同样不会产生历史消息)。
返回
inviteID 邀请 ID,如果邀请失败,返回 nil
注意
群邀请暂不支持离线推送,如果您需要离线推送,可以针对被邀请的用户单独发离线推送自定义消息,详细代码请参考 TUICall+Signal.m -> sendAPNsForGroupCall 函数。

◆ cancel:data:succ:fail:()

- (void) cancel: (NSString *)  inviteID
data: (NSString *)  data
succ: (V2TIMSucc)  succ
fail: (V2TIMFail)  fail 

邀请方取消邀请

参数
inviteID邀请 ID
注意
如果所有被邀请人都已经处理了当前邀请(包含超时),不能再取消当前邀请。

◆ accept:data:succ:fail:()

- (void) accept: (NSString *)  inviteID
data: (NSString *)  data
succ: (V2TIMSucc)  succ
fail: (V2TIMFail)  fail 

接收方接受邀请

注意
不能接受不是针对自己的邀请,请在收到 onReceiveNewInvitation 回调的时候先判断 inviteeList 有没有自己,如果没有自己,不能 accept 邀请。

◆ reject:data:succ:fail:()

- (void) reject: (NSString *)  inviteID
data: (NSString *)  data
succ: (V2TIMSucc)  succ
fail: (V2TIMFail)  fail 

接收方拒绝邀请

注意
不能拒绝不是针对自己的邀请,请在收到 onReceiveNewInvitation 回调的时候先判断 inviteeList 有没有自己,如果没有自己,不能 reject 邀请。

◆ getSignallingInfo:()

- (V2TIMSignalingInfo *) getSignallingInfo: (V2TIMMessage *)  msg

获取信令信息

如果 invite 设置 onlineUserOnly 为 NO,每次信令操作(包括 invite、cancel、accept、reject、timeout)都会产生一条自定义消息,该消息会通过 V2TIMAdvancedMsgListener -> onRecvNewMessage 抛给用户,用户也可以通过历史消息拉取,如果需要根据信令信息做自定义化文本展示,可以调用下面接口获取信令信息。

参数
msg消息对象
返回
V2TIMSignalingInfo 信令信息,如果为 nil,则 msg 不是一条信令消息。

◆ addInvitedSignaling:succ:fail:()

- (void) addInvitedSignaling: (V2TIMSignalingInfo *)  signallingInfo
succ: (V2TIMSucc)  succ
fail: (V2TIMFail)  fail 

添加邀请信令

在离线推送的场景下: 1V1邀请,被邀请者 APP 如果被 Kill,当 APP 收到离线推送再次启动后,SDK 可以自动同步到邀请信令,如果邀请还没超时,用户会收到 onReceiveNewInvitation 回调,如果邀请已经超时,用户会收到 onInvitationTimeout 回调。 群邀请,被邀请者 APP 如果被 Kill,当 APP 收到离线推送再次启动后,SDK 无法自动同步到邀请信令,如果您想要在该场景下处理邀请,请在发送推送消息时携带信令信息(代码参考 TUICall+Signal.m -> sendAPNsForGroupCall),收到推送时候解析信令信息(代码参考 AppDelegate.m -> didReceiveRemoteNotification),然后调用 addInvitedSignaling 主动添加信令信息。

TUIKit 群组音视频通话离线推送就是基于该接口实现,详细实现方法请参考文档:集成音视频通话

注意
如果添加的信令信息已存在,fail callback 会抛 ERR_SDK_SIGNALING_ALREADY_EXISTS 错误码。