集成

集成方式

QD_IMSDK 通过手动下载 SDK, 然后添加到您的项目中。

手动集成

需要做以下步骤: 将下载的 SDK 拖动到 Targets -> General -> Embedded Binaries 里,如下图

弹框这样选择

即可完成集成。

自动集成

暂不支持…

类库说明

QD_IMSDK 主要提供了如下类(协议)与方法

类(协议) 描述 说明
QDClient SDK的主入口类 提供初始化,注册,内部管理的公共能
QDIMLoginManager 登录管理类 负责登录,注销和相应的回调收发
QDIMChatManager 聊天/会话管理类 负责消息、最近会话的管理
QDIMGroupManager 群组管理类 负责群组各种操作
QDIMSystemNotificationManager 系统通知管理类 负责系统消息的接收和存储
QDIMApnsManager 推送管理类 负责推送的设置和接收
QDIMResourceManager 资源管理类 负责文件上传、敏感词信息获取
QDIMUserManager 用户管理类 负责好友的增删查以及会话的设置
QDIMOrgManager 组织架构管理类 负责获许组织架构的相关信息
QDIMAppManager 应用管理类 负责取应用信息
QDIMMediaManager 媒体管理类 负责音视频通话的相关通讯
QDIMTokenManager Web验证Token管理类 负责Web认证的Token的获取与刷新

调用规则

调用方式

所有业务均通过 QDClient 单利调用

@interface QDClient : NSObject

/**
 *  获取 SDK 实例
 *
 *  @return QDClient 是咧
 */
+ (instancetype)sharedClient;

@end

以获取登录管理类为例:

id<QDIMLoginManager> loginManager =  [[QDClient sharedClient] loginManager];

我们强烈推荐您在且只在主线程调用相应接口。

通知方式

SDK 通过两种方式通知上层 API 调用结果:回调(callback)和委托 (delegate),两种方式都只在主线程触发。

一般回调接口直接反映在对应接口的 completion 参数上,调用时设置即可。而委托则需要开发者在合适时机在对应管理类上进行添加和移除:一般推荐在相应 ViewController 或管理类初始化进行委托注册,在其销毁时进行移除。

例如,开发者需要在在会话页上监听消息的发送结果

@implementation MySessionViewController

- (void)dealloc
{
  ...
    [[QDClient sharedClient].chatManager removeDelegate:self];
  ...
}

- (void)viewDidLoad 
{
  ...
    [[QDClient sharedClient].chatManager addDelegate:self];
  ...
}

#pragma mark - QDChatManagerDelegate
- (void)sendMessage:(QDMessage *)message didCompleteWithError:(nullable NSError *)error
{
    //发送结果
}

所有调用错误都会以 NSError 的形式暴露。针对不同场景,我们将错误进行分类,主要分为以下两种错误域和对应错误码

错误域 错误码 说明
QDIMLocalErrorDomain QDLocalErrorCode 本地操作出错导致
QDIMRemoteErrorDomain QDRemoteErrorCode 与服务器交互出错导致

在开发过程中遇到错误情况,可以对照错误域和错误码进行排查,具体定义可以参考 QDGlobalDefs.h。当然在开发过程中你也可以通过检视 NSError 中 userInfo 对应的错误描述信息定位问题。
备注:
如果出现错误 Building for , but the linked and embedded framework was built for iOS + iOS Simulator
可以用一下方法解决: