协同sdk说明


集成

<p>[TOC]</p> <h2>集成方式</h2> <p>QD_IMSDK 通过手动下载 SDK, 然后添加到您的项目中。</p> <h3>手动集成</h3> <p>需要做以下步骤: 将下载的 SDK 拖动到 Targets -&gt; General -&gt; Embedded Binaries 里,如下图 <img src="https://www.showdoc.com.cn/server/api/attachment/visitfile/sign/3fb5b764e44fb13336c7afa1ef9c68cf?showdoc=.jpg" alt="" /> 弹框这样选择 <img src="https://www.showdoc.com.cn/server/api/attachment/visitfile/sign/03823e8797b4cad67bb339265ea0f817?showdoc=.jpg" alt="" /> 即可完成集成。</p> <h3>自动集成</h3> <p>暂不支持...</p> <h3>类库说明</h3> <p>QD_IMSDK 主要提供了如下类(协议)与方法</p> <table> <thead> <tr> <th style="text-align: center;">类(协议)</th> <th style="text-align: center;">描述</th> <th style="text-align: center;">说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: center;">QDClient</td> <td style="text-align: center;">SDK的主入口类</td> <td style="text-align: center;">提供初始化,注册,内部管理的公共能</td> </tr> <tr> <td style="text-align: center;">QDIMLoginManager</td> <td style="text-align: center;">登录管理类</td> <td style="text-align: center;">负责登录,注销和相应的回调收发</td> </tr> <tr> <td style="text-align: center;">QDIMChatManager</td> <td style="text-align: center;">聊天/会话管理类</td> <td style="text-align: center;">负责消息、最近会话的管理</td> </tr> <tr> <td style="text-align: center;">QDIMGroupManager</td> <td style="text-align: center;">群组管理类</td> <td style="text-align: center;">负责群组各种操作</td> </tr> <tr> <td style="text-align: center;">QDIMSystemNotificationManager</td> <td style="text-align: center;">系统通知管理类</td> <td style="text-align: center;">负责系统消息的接收和存储</td> </tr> <tr> <td style="text-align: center;">QDIMApnsManager</td> <td style="text-align: center;">推送管理类</td> <td style="text-align: center;">负责推送的设置和接收</td> </tr> <tr> <td style="text-align: center;">QDIMResourceManager</td> <td style="text-align: center;">资源管理类</td> <td style="text-align: center;">负责文件上传、敏感词信息获取</td> </tr> <tr> <td style="text-align: center;">QDIMUserManager</td> <td style="text-align: center;">用户管理类</td> <td style="text-align: center;">负责好友的增删查以及会话的设置</td> </tr> <tr> <td style="text-align: center;">QDIMOrgManager</td> <td style="text-align: center;">组织架构管理类</td> <td style="text-align: center;">负责获许组织架构的相关信息</td> </tr> <tr> <td style="text-align: center;">QDIMAppManager</td> <td style="text-align: center;">应用管理类</td> <td style="text-align: center;">负责取应用信息</td> </tr> <tr> <td style="text-align: center;">QDIMMediaManager</td> <td style="text-align: center;">媒体管理类</td> <td style="text-align: center;">负责音视频通话的相关通讯</td> </tr> <tr> <td style="text-align: center;">QDIMTokenManager</td> <td style="text-align: center;">Web验证Token管理类</td> <td style="text-align: center;">负责Web认证的Token的获取与刷新</td> </tr> </tbody> </table> <h2>调用规则</h2> <h3>调用方式</h3> <p>所有业务均通过 QDClient 单利调用</p> <pre><code>@interface QDClient : NSObject /** * 获取 SDK 实例 * * @return QDClient 是咧 */ + (instancetype)sharedClient; @end </code></pre> <p>以获取登录管理类为例:</p> <pre><code>id&lt;QDIMLoginManager&gt; loginManager = [[QDClient sharedClient] loginManager];</code></pre> <p>我们强烈推荐您在且只在主线程调用相应接口。</p> <h3>通知方式</h3> <p>SDK 通过两种方式通知上层 API 调用结果:回调(callback)和委托 (delegate),两种方式都只在主线程触发。</p> <p>一般回调接口直接反映在对应接口的 completion 参数上,调用时设置即可。而委托则需要开发者在合适时机在对应管理类上进行添加和移除:一般推荐在相应 ViewController 或管理类初始化进行委托注册,在其销毁时进行移除。</p> <p>例如,开发者需要在在会话页上监听消息的发送结果</p> <pre><code>@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 { //发送结果 } </code></pre> <p>所有调用错误都会以 NSError 的形式暴露。针对不同场景,我们将错误进行分类,主要分为以下两种错误域和对应错误码</p> <table> <thead> <tr> <th style="text-align: center;">错误域</th> <th style="text-align: center;">错误码</th> <th style="text-align: center;">说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: center;">QDIMLocalErrorDomain</td> <td style="text-align: center;">QDLocalErrorCode</td> <td style="text-align: center;">本地操作出错导致</td> </tr> <tr> <td style="text-align: center;">QDIMRemoteErrorDomain</td> <td style="text-align: center;">QDRemoteErrorCode</td> <td style="text-align: center;">与服务器交互出错导致</td> </tr> </tbody> </table> <p>在开发过程中遇到错误情况,可以对照错误域和错误码进行排查,具体定义可以参考 QDGlobalDefs.h。当然在开发过程中你也可以通过检视 NSError 中 userInfo 对应的错误描述信息定位问题。 备注: 如果出现错误 Building for , but the linked and embedded framework was built for iOS + iOS Simulator 可以用一下方法解决: <img src="https://www.showdoc.com.cn/server/api/attachment/visitfile/sign/85dbecfa2f3ad8b7cdbf3992fb4cfa1e" alt="" /></p>

页面列表

ITEM_HTML