# tio-chat-ios **Repository Path**: third_1/tio-chat-ios ## Basic Information - **Project Name**: tio-chat-ios - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2023-12-14 - **Last Updated**: 2024-04-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 集成 # 一、 工程目录结构 . ├── TIOChat **(SDK,不依赖APP中的代码)** ├── tio-chat-ios **(APP)** │   ├── TIOChatKit **(可扩展的聊天页组件,不依赖APP中的代码)** │   ├── Common(公共组件库、工具库、资源库、常量宏的定义) │   │   ├── Lib **封装的工具库和UI库** │   │   ├── Defins `配置API服务器、资源服务器、二维码地址、密钥` │   │   └── Resourse │   ├── Modules(业务模块) │   │   ├── Friends ```好友通讯录``` │   │   ├── Teams ```自己的群聊列表``` │   │   ├── LoginAndRegister ```登录注册``` │   │   ├── Mine ```个人中心``` │   │   ├── Session ```私聊/群聊会话``` │   │   └── SessionList ```会话列表``` │   ├── README.md │   ├── TIOTabBarController.h │   ├── ViewController.h └── └── main.m * APP中的文件命名 # `(⚠️不包括SDK、TIOChatKit)Demo中文件均只以T作前缀。例如:TTabBarViewConreoller` # 二、工程集成配置 ## 1、工程内引入SDK ⚠️ 如果是源码版,请直接忽略这一步 手动拖入 **TIOChatSDK.framework** :放到工程里,建议放在Frameworks下面,如此工程所示位置 ## 2、更改APP名称: **target -> General -> Display Name** ## 3、pod安装相应依赖库 ### 3.1 销售包内已经集成了安装的Pod库,如需自己重新`pod install` 请注意AFNetworking版本要为 3.2.1 如需自行 `pod install` * 请先删除销售包内和pod有关的 Podfile、Podfile.lock、Pods/、tio-chat-ios.xcworkspace。 * `pod install` ### 3.2 更改pod工程启动文件tio-chat-ios.xcworkspace ⚠️ 如果您是重新`pod install`,请忽略这一步,直接看 `4、隐私权限:` 如果主工程入口文件`tio-chat-ios.xcworkspace`打开失败, 请右击`tio-chat-ios.xcworkspace`显示包内容,更改`contents.xcworkspacedata` 中 tio-chat-ios.xcodeproj 的实际路径。 ``` ``` ## 4、隐私权限: 1、Privacy - Camera Usage Description : 摄像头 2、Privacy - Microphone Usage Description :麦克风 3、Privacy - Photo Library Usage Description :相册 ## 5、推送 参考APP源码Appdelegate.m 中,关于推送的部分,在 `- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken` 中调用 SDK 的 `bindRegistrationID` 方法,将极光推送和SDK进行绑定 如下: ``` - (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken { /// Required - 注册 DeviceToken // important!!!! 和TIO SDK 绑定 [TIOChat.shareSDK bindRegistrationID:JPUSHService.registrationID]; [JPUSHService registerDeviceToken:deviceToken]; } ``` # 三、TIOChat/源码 配置及使用 引用示例,在需要用到SDK的类中,以下面之一的方式倒入SDK `#import "TIOChat.h"` 或者 `#import ` ## 1、在入口类Appdelegate.m 中配置TIOChat/源码 ### 1.1 配置二维码的下载识别地址、资源服务器地址前缀、H5地址前缀 在 `/Common/ServerConfig.h` 内 QR_SERVER 二维码 kHTMLBaseURLString H5 kResourceURLString 资源服务器 kSecturyKey 密钥 kBaseURLString API服务器 ### 1.2 Appdelegate.m ``` ///<---------------------------------------- 配置开始 ---------------------------------------- /* 配置TIOChat */ TIOConfig *tioConfig = [TIOConfig.alloc init]; // 开启日志 发布的时候关闭 #ifdef DEBUG [TIOChat setLogEnable:YES]; #else // 线上环境 [TIOChat setLogEnable:NO]; #endif // 服务器配置 tioConfig.httpsAddress = kBaseURLString; tioConfig.resourceAddress = kResourceURLString; tioConfig.secrectKey = kSecturyKey; TIOChat.shareSDK.config = tioConfig; TIOSDKOption *option = [TIOSDKOption.alloc init]; // option.isOpenSSL = YES; 默认关闭,请手动开启 [TIOChat.shareSDK registerWithOption:option]; [TIOChat.shareSDK.loginManager addDelegate:self]; // 配置基础网络信息 [TIOChat requestNetConfig:^(NSDictionary *result) { // result为空,说明配置失败 if (result) { // 开始检查版本:自己处理更新类型及提示 [CBVersionManager.shareInstance starManager]; } }]; ///<---------------------------------------- 配置结束 ---------------------------------------- ``` 当您的业务需求需要启动SDK的时候,使用`lunch`方法启动SDK,前提是:SDK必须得登录 ``` // 启动SDK [TIOChat.shareSDK lunch]; ``` ## 2、SSL 默认SSL关闭,如需开启,将 `[TIOChat.shareSDK registerWithOption:option];` 中 option 的 `isOpenSSL` 设为 `YES`。 ``` TIOChat.shareSDK.config = tioConfig; TIOSDKOption *option = [TIOSDKOption.alloc init]; // option.isOpenSSL = YES; 默认关闭,请手动开启 [TIOChat.shareSDK registerWithOption:option]; ``` # SDK 功能分布 ## 一、登录模块 TIOLoginManager * 登录 * 退出 * 注册 * 更改用户信息:头像、昵称、性别、电话、密码等 * 找回密码 * 权限设置:好友加自己的权限、通知权限 * 收到登录结果(通知) * 收到退出登录(通知) * 收到被挤掉登录(通知) ## 二、好友模块 TIOFriendManager * 添加好友 * 处理好有申请 * 删除好友 * 获取好友列表 * 添加进黑名单 * 移除黑名单 * 获取好友信息 * 判断是不是自己的好友 * 收到删除好友的(通知) ## 三、聊天模块 TIOChatManager * 发送消息:(文本、图片、表情、名片、语音等) * 撤回消息 * 删除消息 * 转发消息 * 新消息(通知) * 收到文件上传(通知) * 收到消息删除(通知) * 收到消息撤回(通知) ## 四、群模块 TIOTeamManager * 创建群 * 添加用户进群 * 将用户踢出群 * 获取群信息 * 搜索群成员 * 搜索自己的群聊 * 获取所有的群聊列表 * 分享群名片 * 更改群内昵称 * 修改群名(群主) * 修改群公告(群主) * 修改群简介(群主) * 解散群(群主) * 转让群(群主) * 修改成员邀请权限(群主) * 修改群审核开关(群主) * 退群 * 收到已解散群(通知) * 收到已转让群(通知) * 收到已退群(通知) * 收到群信息变更(通知) * 收到被踢出群(通知) * 收到重新加入群聊(通知) * 收到群成员数量变更(通知) ## 五、会话模块 TIOConversationManager * 进入会话 * 离开会话 * 更新本地会话列表 * 获取历史消息 * 获取会话ID * 获取会话信息 * 置顶会话 * 取消置顶会话 * 删除会话 * 举报会话 * 清空会话内聊天记录 * 新增会话通知 * 更新会话通知 * 收到即将开始同步远端数据到本地数据库(通知) * 收到已经从远端服务器同步本地数据(通知) * 收到已清除某个会话内的所有聊天记录(通知) * 收到已经将某个会话置顶(通知) * 收到已经将某个会话取消置顶(通知) * 收到好友已读自己的消息(通知) * 收到所有会话的总未读消息数改变(通知) * 收到某个会话的未读消息发生变更(通知) ## 六、语音模块 TIOAudioManager 不是音视频实时聊天,语音发送功能 * 是否正在录音 * 是否正在播放 * 开始录音 * 暂停录音 * 结束录音 * 播放 * 停止播放 * 收到开始录音(通知) * 收到完成录音(通知) * 收到录音时间进度(通知) ## 七、音视频聊天模块 TIOVideoChatManager * 发起呼叫 * 接听处理:接听|拒接 * 挂断 * 取消呼叫 * 切换摄像头 * 收到呼叫(通知) * 收到接听人的接听或拒绝响应(通知) * 收到被挂断(通知) * 收到本地视频预览已准备好(通知) * 收到信令接通(通知) * 收到通话已经建立连接,开始通话(通知) * 收到通话被断开(通知) * 远端视频尺寸变化(通知)