集成
[TOC]
集成方式
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
可以用一下方法解决: