开发环境要求
Xcode 10 及以上
iOS 9.0 及以上
CocoaPods 集成
TUIKit 从 5.7.1435 版本开始支持模块化集成,您可以根据自己的需求选择所需模块集成。
1. 根据实际业务需求在 Podfile 中添加对应的 TUI 组件,比如需要聊天功能,可以添加
pod 'TUIChat'
;需要会话列表功能,可以添加 pod 'TUIConversation'
;需要音视频通话功能,可以添加pod 'TUICallKit'
。TUI 组件之间相互独立,添加或删除均不影响工程编译。# 防止 TUI 组件里的
*
.
xcassets 与您项目里面冲突。
install
!
'cocoapods'
,
:
disable_input_output_paths
=
>
true
# TUI 组件依赖了静态库,需要屏蔽如下设置,如果报错,请参考常见问题说明。
# use_frameworks!
# 集成聊天功能
pod
'TUIChat'
# 集成会话功能
pod
'TUIConversation'
# 集成关系链功能
pod
'TUIContact'
# 集成群组功能
pod
'TUIGroup'
# 集成搜索功能(需要购买旗舰版套餐)
pod
'TUISearch'
# 集成音视频通话功能
pod
'TUICallKit'
2. 执行以下命令,安装 TUI 组件。
pod install
如果无法安装 TUIKit 最新版本,执行以下命令更新本地的 CocoaPods 仓库列表。
pod repo update
TUI 组件集成后效果:
快速搭建
常用的聊天软件都是由会话列表、聊天窗口、好友列表、音视频通话等几个基本的界面组成,参考下面步骤,您仅需几行代码即可在项目中快速搭建这些 UI 界面。
步骤一:组件登录
#import "TUILogin.h"// 您可以在用户 UI 点击登录的时候登录 UI 组件- (void)loginSDK:(NSString *)userID userSig:(NSString *)sig succ:(TSucc)succ fail:(TFail)fail {// SDKAppID 可以在 即时通信 IM 控制台中获取// userSig生成见 GenerateTestUserSig.h[TUILogin login:SDKAppID userID:userID userSig:sig succ:^{NSLog(@"-----> 登录成功");} fail:^(int code, NSString *msg) {NSLog(@"-----> 登录失败");}];}
步骤二:构建会话列表
会话列表只需要创建
TUIConversationListController
对象即可。会话列表会从数据库中读取最近联系人,当用户单击联系人时,TUIConversationListController
将该事件回调给上层。@implementation ConversationController // 您自己的 ViewController- (void)viewDidLoad {[super viewDidLoad];// 创建 TUIConversationListControllerTUIConversationListController *conv = [[TUIConversationListController alloc] init];conv.delegate = self;// 把 TUIConversationListController 添加到自己的 ViewController[self addChildViewController:conv];[self.view addSubview:conv.view];}- (void)conversationListController:(TUIConversationListController *)conversationController didSelectConversation:(TUIConversationCell *)conversation{// 会话列表点击事件,通常是打开聊天界面}@end
步骤三:构建聊天窗口
初始化聊天界面时,上层需要传入当前聊天界面对应的会话信息,示例代码如下:
@implementation ChatViewController // 您自己的 ViewController- (void)viewDidLoad {// 创建会话信息TUIChatConversationModel *data = [[TUIChatConversationModel alloc] init];data.userID = @"userID";// 创建 TUIC2CChatViewControllerTUIC2CChatViewController *vc = [[TUIC2CChatViewController alloc] init];[vc setConversationData:data];// 把 TUIC2CChatViewController 添加到自己的 ViewController[self addChildViewController:conv];[self.view addSubview:conv.view];}@end
TUIC2CChatViewController
会自动拉取该用户的历史消息并展示出来。步骤四:构建通讯录界面
通讯录界面不需要其它依赖,只需创建对象并显示出来即可。
@implementation ContactController // 您自己的 ViewController- (void)viewDidLoad {// 创建 TUIContactControllerTUIContactController *vc = [[TUIContactController alloc] init];// 把 TUIContactController 添加到自己的 ViewController[self addChildViewController:conv];[self.view addSubview:conv.view];}@end
步骤五:构建音视频通话功能
TUI 组件支持在聊天界面对用户发起音视频通话,仅需要简单几步就可以快速集成:
视频通话 | 语音通话 |
| |
1. 创建音视频服务
1.1 创建项目。创建项目,选择类型及场景,开通相关服务。
1.1.2 选择项目类型。可选择创建新项目并输入项目名称,或关联已有项目。
1.1.3 选择接入场景。选择快速接入的音视频场景,分为聊天应用和音视频通话。
1.1.4 选择集成方式。选择含 UI 快速集成。
1.1.5 开通相关服务。使用音视频通话 SDK 需提前开通即时通信 IM 和实时音视频 TRTC 服务,仅开通服务,不涉及付费购买产品。
1.1.6 单击创建项目并下一步,完成项目创建,进入开发指引。
1.2 准备开发。
1.2.1 体验 Demo。您可提前体验 Demo 了解 SDK 应用效果,包括 Android、iOS 和 Web 端。
1.2.2 关联/创建 IM 应用。音视频通话创建需要使用 IM 服务,请选择一个 IM 应用进行关联或者创建新的应用。
1.2.3 领取资源。每个应用可免费体验音视频通话 SDK 功能一次,有效期7天,音视频通话 SDK 体验版详细能力支持请参见 套餐包功能说明。业务上线请升级购买正式版本套餐,享受完整功能。
1.2.4 单击 前往集成。
1.3 集成指南
1.3.1 选择集成环境并下载 TUIKit 开发包。集成环境包括 Android 和 iOS。
1.3.2 集成测试。下载 TUIKit 开发包后,参照集成测试的步骤查看相关集成文档完成集成测试。
1.3.3 正式开发。完成 SDK 接入测试后,若需正式开发并上线音视频应用,可购买音视频通话套餐包,包括基础版、进阶版和尊享版,升级当前项目业务版本,享受完整功能。
2. 集成 TUICallKit 组件在 podfile 文件中添加以下内容。
// 集成音视频通话组件pod 'TUICallKit'
3. 发起和接收视频或语音通话
消息页发起通话 | 联系人页发起通话 |
| |
集成 TUICallKit 组件后,聊天界面和联系人资料界面默认会出现 “视频通话” 和 “语音通话” 两个按钮,当用户单击按钮时,TUIKit 会自动展示通话邀请 UI,并给对方发起通话邀请请求。
当用户在线收到通话邀请时,TUIKit 会自动展示通话接收 UI,用户可以选择同意或者拒绝通话。
当用户离线收到通话邀请时,如需唤起 App 通话,就要使用到离线推送能力,离线推送的实现请参见 添加离线推送。
4. 添加离线推送
配置完成后,当单击接收到的音视频通话离线推送通知时, TUICallKit 会自动拉起音视频通话邀请界面。
说明:
常见问题
1、提示 "target has transitive dependencies that include statically linked binaries" 如何处理?
如果在 pod 过程中出现该错误,是因为 TUIKit 使用到了第三方静态库,需要在 podfile 中注释掉
use_frameworks!
。
如果在某种情况下,需要使用use_frameworks!
,则请使用 cocoapods 1.9.0 及以上版本进行pod install
,并修改为:use_frameworks! :linkage => :static
如果您使用的是 swift,请将头文件引用改成 @import 模块名形式引用。
2、TUICallKit 和自己集成的音视频库冲突了?
腾讯云的 音视频库 不能同时集成,会有符号冲突,如果您使用了非 TRTC 版本的音视频库,建议先去掉,然后 pod 集成
TUICallKit/Professional
版本,该版本依赖的 LiteAV_Professional 音视频库包含了音视频的所有基础能力。如果您使用了 LiteAV_Enterprise 音视频库,暂不支持和 TUICallKit 共存。具体解决方案可以参考文档:音视频常见问题。3、通话邀请的超时时间默认是多久?
通话邀请的默认超时时间是 30 秒。
4、在邀请超时时间内,被邀请者如果离线再上线,能否立即收到邀请?
如果是单聊通话邀请,被邀请者离线再上线可以收到通话邀请,TUIKit 内部会自动唤起通话邀请界面。
如果是群聊通话邀请,被邀请者离线再上线后会自动拉取最近 30 秒内的邀请,TUIKit 会自动唤起群通话界面。
交流与反馈
欢迎加入 QQ 群进行技术交流和反馈问题。