本文介绍如何创建一个 IMCloud iOS 项目,实现即时通讯功能。你也可以通过阅读代码,了解即时通讯的最佳实践。

前提条件
步骤 1:创建项目(可选)

本步骤为如何创建一个新项目,如集成到已有项目,请直接查看集成 SDK。

  1. 打开 Xcode,选择 File > New > Project。

  2. 选择 iOS > App,单击 Next。

  1. 输入项目名称、团队名称、选择开发语言(Objective-C),单击 Next。

  2. 选择项目存储位置,单击 Create。

  3. 签名设置:进入 TARGETS > Project Name > Signing & Capabilities,查看 Automatically manage signing 是否勾选,若没有勾选请勾选 ,并在弹出菜单中选择 Enable Automatic。

步骤 2:集成 SDK

你可以使用 CocoaPods 自动加载的方式,或者手动下载 IMSDK 导入到项目中。

CocoaPods 自动加载
  1. 安装 CocoaPods。
sudo gem install cocoapods
objectivec
  1. 创建 Podfile 文件。
pod init
objectivec
  1. 编辑 Podfile 文件。你需要填写所需要的 SDK 版本号,最新版本号参看资源获取。
platform :ios, '8.0'
source 'https://github.com/CocoaPods/Specs.git'
source 'https://github.com/volcengine/volcengine-specs.git'

target 'App' do
#warn 请使用静态库链接方式,否则会链接出错
# use_frameworks!
use_modular_headers!  // 如果是 Swift 工程,请使用 use_modular_headers! 不要使用 use_frameworks!
pod 'imsdk-tob', '1.x.x'
end
objectivec
  1. 更新并安装 SDK。
pod install
objectivec
手动集成

下载 SDK 并将 imsdk-tob.framework 导入工程中。

步骤 3:实现实时通讯功能
初始化

在使用 IMSDK 接口功能前需要先进行初始化操作,可以在 IM功能使用前比如applicationDelegate 的 - (BOOL)application:didFinishLaunchingWithOptions: 回调函数中添加如下代码。其中 BIMSDKConfig 可配置 IMSDK 的日志监听。

BIMSDKConfig *config = [[BIMSDKConfig alloc] init];
[config setLogListener:^(BIMLogLevel logLevel, NSString * _Nonnull logContent) {
 // 日志 输出
}];
[[BIMClient sharedInstance] initSDK:appID  config:config];
objectivec

BIMLogLevel 日志级别含义如下

日志级别含义
BIM_LOG_DEBUGdebug 日志, 调试信息。
BIM_LOG_INFOInfo 日志,上下文环境等信息。
BIM_LOG_WARNwarn 日志,警告信息。
BIM_LOG_ERRORerror 日志,错误信息。
设置监听

设置 Imsdk 生命周期内重要事件的监听可以了解 IMSDK 的运行状态,数据同步状态等信息,便于开发者业务逻辑判断。

[[BIMClient sharedInstance] addConnectListener:<#(nonnull id<BIMConnectListener>)#>];

- (void)onConnectStatusChanged:(BIMConnectStauts)status {
}

- (void)onTokenInvalid {
}
objectivec
登录登出

完成初始化并设置监听后,即可进入到登录流程,登录后才能正常使用组件功能。

客户端登录示例代码如下。登录会根据当前传入的 uid,token 鉴权,并拉取历史会话、消息等数据,同时建立长链接。

[[BIMClient sharedInstance] login:uid token:token completion:^(BIMError * _Nullable error) {        
    // 无error代表登录成功,反之失败      
}];
objectivec

开发者可以通过 logout 当前账号,再 login 新账号实现此功能。

实现单聊

通过以下简单步骤可实现单聊功能,单聊是 IM 的基础功能,能够实现一对一的即时通信能力。

  1. 创建单聊会话
[[BIMClient sharedInstance] createSingleConversation:uid completion:^(BIMConversation * _Nonnull conversation, BIMError * _Nullable error) {
           
}];
objectivec
  1. 发送单聊消息
//创建消息
BIMMessage *sendMsg = [[BIMClient sharedInstance] createTextMessage:@"消息内容"];

//发送消息
 [[BIMClient sharedInstance] sendMessage:sendMsg conversationId:@"会话id" saved:nil progress:nil completion:^(BIMMessage * _Nullable message, BIMError * _Nullable error) {
 }];
objectivec
  1. 设置消息监听
[[BIMClient sharedInstance] addMessageListener:<#(nonnull id<BIMMessageListener>)#>];

/// 收到新消息
- (void)onReceiveMessage:(BIMMessage *)message {
    
}

/// 收到消息被删除
- (void)onDeleteMessage:(NSString *)msgID {

}

/// 收到消息撤回
- (void)onRecallMessage:(BIMMessage *)message {
    
}

/// 消息被修改(内容+扩展)
- (void)onUpdateMessage:(BIMMessage *)message {
    
}

/// 发送消息入库完成
- (void)onSendMessage:(BIMMessage *)message {
    
}
objectivec
相关文档