NIMSDK-iOS
载入中...
搜索中...
未找到
NIMSDKHeader.h
浏览该文件的文档.
1//
2// NIMSDKHeaders.h
3// NIMLib
4//
5// Created by Netease.
6// Copyright (c) 2015 Netease. All rights reserved.
7//
8
9#import <Foundation/Foundation.h>
10
11NS_ASSUME_NONNULL_BEGIN
12
13@class NIMSDKOption;
14@class NIMQChatOption;
15@class NIMServerSetting;
16
17@protocol NIMCustomizedAPIManager;
18/**
19 * 压缩日志回调
20 *
21 * @param error 执行结果,如果成功 error 为 nil
22 * @param path 压缩包的路径,只有当执行成功才有值,否则为 nil
23 */
24typedef void(^NIMArchiveLogsHandler)(NSError *error, NSString *path);
25
26typedef void(^NIMUploadLogsHandler)(NSError *error, NSString *path);
27
28
29/**
30 * SDK 核心类,提供初始化 SDK,获取各个服务能力接口,获取当前版本等接口
31 */
32@interface NIMSDK : NSObject
33/**
34 * 获取 NIM SDK 实例。
35 * @par 调用时机:
36 * IM 所有业务均通过 NIM SDK 单例进行调用。
37 * @par 注意事项:
38 * 虽然所有的云信接口都是线程安全的,但为了防范于未然,推荐您在且只在主线程调用该接口。
39 * @par 返回:
40 * NIM SDK: 实例
41 */
42+ (instancetype)sharedSDK;
43
44/**
45 * 获取当前 SDK 版本号。
46 *
47 * @par 返回:
48 * 当前 SDK 版本号,如 "1.0.0"
49 */
50- (NSString *)sdkVersion;
51
52/**
53 * 获取当前 Git 的版本号。
54 */
55- (NSString *)gitVersion;
56
57/**
58 * 初始化 SDK,初始化时,可同时注册应用的 AppKey 和 APNs 推送证书名称。<br>
59 * 如需要同时配置 PushKit 推送证书名称,请使用 - (void)registerWithOption:(NIMSDKOption *)option; 接口。
60 * @par 调用时机:
61 * 建议在应用启动时初始化 NIM SDK。
62 * @par 参数说明:
63 * <table>
64 * <tr><th>参数名称</th><th>描述</th></tr>
65 * <tr><td>appKey</td><td>对应云信控制台应用的 AppKey,应用的唯一标识。使用相同 App Key 、不同 Bundle Id 的应用,消息仍可以互通</td></tr>
66 * <tr><td>cerName</td><td>对应云信控制台配置的推送证书名称,不超过 32 个字符,否则登录时会报 500 错误</td></tr>
67 * </table>
68 *
69 */
70- (void)registerWithAppID:(NSString *)appKey
71 cerName:(nullable NSString *)cerName;
72
73
74/**
75 * 初始化 SDK,初始化时,可同时注册 APNs 推送证书名称和 PushKit 推送证书名称。<br>
76 * @par 调用时机:
77 * 建议在应用启动时初始化 NIM SDK。
78 * @par 参数说明:
79 * option:初始化的配置项,包括应用的 AppKey 、APNs 推送证书名称和 PushKit 推送证书名称
80 */
81- (void)registerWithOption:(NIMSDKOption *)option;
82
83/**
84 * 获取 AppKey。
85 *
86 * @par 返回:
87 * 当前注册应用的 AppKey
88 */
89- (nullable NSString *)appKey;
90
91
92/**
93 * 是否正在使用 Demo 的 AppKey。
94 *
95 * @par 返回:
96 * YES:正在使用;NO :没有使用
97 */
98- (BOOL)isUsingDemoAppKey;
99
100/**
101 * 配置圈组的推送证书。通过配置推送证书的名称(对应云信控制台上的推送证书名称),与第三方推送厂商完成通信。
102 *
103 * @par 参数说明:
104 * option:圈组选项,推送证书名称
105 */
106- (void)qchatWithOption:(NIMQChatOption *)option;
107
108/**
109 * 上传/更新 DeviceToken 至云信服务器,用于后续的 APNs 推送。若需要同时设置自定义推送文案,请使用 [updateApnsToken:customContentKey:](https://doc.yunxin.163.com/docs/interface/messaging/iOS/doxygen/Latest/zh/de/de3/interface_n_i_m_s_d_k.html#ab84b0a2d91225c8b10de070205fd9d2a)
110 customContentKey:(nullable NSString *)key;
111 * @par 参数说明:
112 * token:当前设备的 DeviceToken
113 * @par 返回:
114 * 格式化后的 DeviceToken
115 */
116- (NSString *)updateApnsToken:(NSData *)token;
117
118/**
119 * 上传/更新 DeviceToken 至云信服务器,用于后续的 APNs 推送。该接口可同时设置自定义推送文案(对应云信控制台中的自定义推送文案类型)。若需要在圈组中使用自定义推送文案,请使用 [updateApnsToken:customContentKey:qchatCustomContentKey:](https://doc.yunxin.163.com/docs/interface/messaging/iOS/doxygen/Latest/zh/de/de3/interface_n_i_m_s_d_k.html#a76e4b4325d3ae560eedfab3e67e3afff)
120 * @par 参数说明:
121 * <table>
122 * <tr><th>参数名称</th><th>描述</th></tr>
123 * <tr><td>token</td><td>当前设备的 DeviceToken</td></tr>
124 * <tr><td>key</td><td>自定义的推送文案(对应云信控制台中的自定义推送文案类型,最多可设置 100 种,对应不同的业务场景)<br>不填(nil),则表示不更改,使用云信系统内默认的推送文案:“你收到一条新消息”;<br>填 “”(空值),则清空配置;</td></tr>
125 * </table>
126 * @par 返回:
127 * 格式化后的 DeviceToken
128 */
129- (NSString *)updateApnsToken:(NSData *)token
130 customContentKey:(nullable NSString *)key;
131
132/**
133 * 上传/更新 DeviceToken 至云信服务器,用于后续的 APNs 推送。该接口可同时设置自定义推送文案以及圈组自定义推送文案(对应云信控制台中的自定义推送文案类型)。
134 * @par 参数说明:
135 * <table>
136 * <tr><th>参数名称</th><th>描述</th></tr>
137 * <tr><td>token</td><td>当前设备的 DeviceToken</td></tr>
138 * <tr><td>key</td><td>自定义的推送文案(对应云信控制台中的自定义推送文案类型,最多可设置 100 种,对应不同的业务场景)<br>不填(nil),则表示不更改,使用云信系统内默认的推送文案:“你收到一条新消息”;<br>填 “”(空值),则清空配置</td></tr>
139 * <tr><td>qchatKey</td><td>圈组的自定义推送文案(对应云信控制台中的自定义推送文案类型,最多可设置 100 种,对应不同的业务场景)<br>不填(nil),则表示不更改,圈组使用云信系统内默认的推送文案:“你收到一条新消息”;<br>填 “”(空值),则清空配置</td></tr>
140 * </table>
141 * @par 返回:
142 * 格式化后的 DeviceToken
143 */
144- (NSString *)updateApnsToken:(NSData *)token
145 customContentKey:(nullable NSString *)key
146 qchatCustomContentKey:(nullable NSString *)qchatKey;
147
148/**
149 * 上传/更新 PushKit Token 至云信服务器,用于后续的离线推送。目前仅支持 PKPushTypeVoIP 类型。
150 *
151 * @par 参数说明:
152 * token :VoIP Push Token
153 * @par 返回:
154 * 格式化后的 VoIP Push Token
155 */
156- (void)updatePushKitToken:(NSData *)token;
157
158
159/**
160 * 获得 SDK 当前的 log 文件路径。
161 * @par 注意事项:
162 * SDK 每天会生成一个 log 文件,方便开发者定位和反馈问题。
163 * @par 返回:
164 * SDK 当前的 log 文件路径(当前生成的最新的 log 文件路径)
165 */
166- (NSString *)currentLogFilepath;
167
168
169/**
170 * 打包当前所有的 log 文件,调用该接口后,SDK 将压缩当前所有的日志为 Zip 文件,并输出 Zip 路径,上层可以根据该文件进行上传反馈。
171 *
172 * @par 参数说明:
173 * completion:压缩日志的回调,回调信息包含 error(执行结果,如果成功将返回 nil)和 path(压缩包的路径,只有当执行成功才有值,否则将返回 nil)
174 */
175- (void)archiveLogs:(NIMArchiveLogsHandler)completion;
176
177/**
178 * 打包并上传当前所有的 log 文件,调用该接口后,SDK 将压缩当前所有的日志为 Zip 文件,输出 Zip 路径并上传,上层可以根据该文件进行上传反馈。
179 *
180 * @par 参数说明:
181 * completion:打包并上传日志的回调,回调信息包含 error(执行结果,如果成功将返回 nil)和 path(压缩包的路径,只有当执行成功才有值,否则将返回 nil)
182 */
183- (void)uploadLogs:(NIMUploadLogsHandler _Nullable)completion;
184
185/**
186 * 打包并上传目标聊天室的所有的 log 文件,调用该接口后,SDK 将压缩目标聊天室当前所有的日志为 Zip 文件,输出 Zip 路径并上传,上层可以根据该文件进行上传反馈。
187 *
188 * @par 参数说明:
189 * <table>
190 * <tr><th>参数名称</th><th>描述</th></tr>
191 * <tr><td>attach</td><td>附言,可为空</td></tr>
192 * <tr><td>roomId</td><td>目标聊天室 ID,可为空</td></tr>
193 * <tr><td>completion</td><td>打包并上传日志的回调,回调信息包含 error 和 path<br>error :执行结果,如果成功将返回 nil<br>path :压缩包的路径,只有当执行成功才有值,否则将返回 nil</td></tr>
194 * </table>
195 */
196- (void)uploadLogsWithAttach:(nullable NSString *)attach
197 roomId:(nullable NSString *)roomId
198 completion:(NIMUploadLogsHandler _Nullable)completion;
199
200/**
201 * 优化圈组表现。
202 */
203- (void)optimizeQChat;
204
205
206/**
207 * 开启控制台 Log。调用该接口开启控制台 Log 后,会将云信 SDK 的日志写进开发者调试工具的控制台日志文件中(Console Log)。
208 */
209- (void)enableConsoleLog;
210
211/**
212 * 当前服务器配置
213 * @discussion 私有化需要进行自定义设置,必须在注册 appkey 完成之前设置
214 */
215@property (nonatomic,strong) NIMServerSetting *serverSetting;
216
217/**
218 * 资源场景配置
219 * @discussion nos 预设场景和自定义场景规则
220 * 可以覆盖设置,如果预设场景不设置,为系统默认设置
221 * sceneDict key-value,系统默认预设场景为3种,自定义场景数量不超过10种
222 * key 是场景,nsstring类型;value 是资源存活时间,nsnumber类型,精确到天,0为永久存活
223 * 例如:@{@"nim_icon":@0,@"nim_msg":@0,@"nim_system":@0,@"nim_custom":@30}
224 */
225@property (nonatomic,strong) NSMutableDictionary *sceneDict;
226
227/**
228 * 登录管理类,负责登录、注销和相关操作的通知收发,提供鉴权、登录、登出、踢人等接口
229 */
230@property (nonatomic,strong,readonly) id<NIMLoginManager> loginManager;
231
232/**
233 * 聊天管理类,提供消息发送、消息查询、消息撤回等相关接口
234 */
235@property (nonatomic,strong,readonly) id<NIMChatManager> chatManager;
236
237/**
238 * 会话管理类,负责消息、最近会话的读写和管理,提供获取/删除会话消息、设置会话消息已读等相关接口
239 */
240@property (nonatomic,strong,readonly) id<NIMConversationManager> conversationManager;
241
242/**
243 * 媒体管理类,提供语音录制和播放相关接口
244 */
245@property (nonatomic,strong,readonly) id<NIMMediaManager> mediaManager;
246
247/**
248 * 群组管理类,负责群组的操作:创建,拉人,踢人,同步等
249 */
250@property (nonatomic,strong,readonly) id<NIMTeamManager> teamManager;
251
252/**
253 * 超大群管理类,提供超大群成员管理、超大群消息发送、超大群资料管理等相关接口
254 */
255@property (nonatomic,strong,readonly) id<NIMSuperTeamManager> superTeamManager;
256
257/**
258 * 好友管理类,提供用户信息管理和好友关系管理相关接口
259 */
260@property (nonatomic,strong,readonly) id<NIMUserManager> userManager;
261
262/**
263 * 系统通知管理类,提供发送、标记、删除系统通知等接口
264 */
265@property (nonatomic,strong,readonly) id<NIMSystemNotificationManager> systemNotificationManager;
266
267/**
268 * APNS 推送管理类,提供APNs 离线推送服务相关配置接口
269 */
270@property (nonatomic,strong,readonly) id<NIMApnsManager> apnsManager;
271
272/**
273 * 资源管理器,提供下载、搜索、查询资源等接口
274 */
275@property (nonatomic,strong,readonly) id<NIMResourceManager> resourceManager;
276
277/**
278 * 聊天室管理类,提供进出聊天室、发送聊天室消息、聊天室成员管理、聊天室队列服务、聊天室标签等接口
279 */
280@property (nonatomic,strong,readonly) id<NIMChatroomManager> chatroomManager;
281
282/**
283 * 文档转码管理类,提供查询文档转码信息、删除转码文档等接口
284 */
285@property (nonatomic,strong,readonly) id<NIMDocTranscodingManager> docTranscodingManager;
286
287/**
288 * 事件订阅管理类,提供发布、查询、订阅事件等接口
289 */
290@property (nonatomic,strong,readonly) id<NIMEventSubscribeManager> subscribeManager;
291
292/**
293 * 智能机器人管理类,提供获取机器人信息等接口
294 */
295@property (nonatomic,strong,readonly) id<NIMRobotManager> robotManager;
296
297/**
298 * 红包管理类,提供获取红包 token 的接口
299 */
300@property (nonatomic,strong,readonly) id<NIMRedPacketManager> redPacketManager;
301
302/**
303 * 广播消息管理类,提供广播消息监听等接口
304 */
305@property (nonatomic,strong,readonly) id<NIMBroadcastManager> broadcastManager;
306
307/**
308 * 反垃圾管理类,提供本地反垃圾检查接口
309 */
310@property (nonatomic,strong,readonly) id<NIMAntispamManager> antispamManager;
311
312/**
313 * 通用音视频信令管理类,提供信令相关接口
314 */
315@property (nonatomic,strong,readonly) id<NIMSignalManager> signalManager;
316
317/**
318 * 透传代理管理类
319 */
320@property (nonatomic,strong,readonly) id<NIMPassThroughManager> passThroughManager;
321
322
323/**
324 * Thread Talk(扩展消息)管理类,提供收藏消息、快捷评论等接口
325 */
326@property (nonatomic,strong,readonly) id<NIMChatExtendManager> chatExtendManager;
327
328/**
329 * 索引管理类,提供消息检索相关接口
330 */
331@property (nonatomic,strong,readonly) id<NIMIndexManager> indexManager;
332
333/**
334 * 圈组管理类
335 */
336@property (nonatomic,strong,readonly) id<NIMQChatManager> qchatManager;
337
338/**
339 * 圈组APNS推送管理类
340 */
341@property (nonatomic,strong,readonly) id<NIMQChatApnsManager> qchatApnsManager;
342
343/**
344 * 圈组服务器管理类
345 */
346@property (nonatomic,strong,readonly) id<NIMQChatServerManager> qchatServerManager;
347
348/**
349 * 圈组频道管理类
350 */
351@property (nonatomic,strong,readonly) id<NIMQChatChannelManager> qchatChannelManager;
352
353/**
354 * 圈组身份组管理类
355 */
356@property (nonatomic,strong,readonly) id<NIMQChatRoleManager> qchatRoleManager;
357
358/**
359 * 圈组消息管理类
360 */
361@property (nonatomic,strong,readonly) id<NIMQChatMessageManager> qchatMessageManager;
362
363/**
364 * 圈组消息扩展管理类
365 */
366@property (nonatomic,strong,readonly) id<NIMQChatMessageExtendManager> qchatMessageExtendManager;
367
368/**
369 * 圈组rtc管理类
370 */
371@property (nonatomic,strong,readonly) id<NIMQChatRTCChannelManager> qchatRTCChannelManager;
372
373/**
374 * 定制化接口调用管理类,提供调用定制化 API 接口
375 */
376@property (nonatomic,strong,readonly) id<NIMCustomizedAPIManager> customizedAPIManager;
377
378@end
379
380NS_ASSUME_NONNULL_END
void(^ NIMArchiveLogsHandler)(NSError *error, NSString *path)
Definition: NIMSDKHeader.h:24
void(^ NIMUploadLogsHandler)(NSError *error, NSString *path)
Definition: NIMSDKHeader.h:26
Definition: NIMQChatOption.h:17
Definition: NIMSDKHeader.h:33
id< NIMQChatRTCChannelManager > qchatRTCChannelManager
Definition: NIMSDKHeader.h:371
id< NIMConversationManager > conversationManager
Definition: NIMSDKHeader.h:240
BOOL isUsingDemoAppKey()
id< NIMQChatManager > qchatManager
Definition: NIMSDKHeader.h:336
id< NIMQChatRoleManager > qchatRoleManager
Definition: NIMSDKHeader.h:356
void enableConsoleLog()
id< NIMRobotManager > robotManager
Definition: NIMSDKHeader.h:295
id< NIMIndexManager > indexManager
Definition: NIMSDKHeader.h:331
NSString * sdkVersion()
id< NIMApnsManager > apnsManager
Definition: NIMSDKHeader.h:270
id< NIMRedPacketManager > redPacketManager
Definition: NIMSDKHeader.h:300
id< NIMUserManager > userManager
Definition: NIMSDKHeader.h:260
id< NIMResourceManager > resourceManager
Definition: NIMSDKHeader.h:275
id< NIMBroadcastManager > broadcastManager
Definition: NIMSDKHeader.h:305
id< NIMAntispamManager > antispamManager
Definition: NIMSDKHeader.h:310
id< NIMEventSubscribeManager > subscribeManager
Definition: NIMSDKHeader.h:290
id< NIMQChatMessageExtendManager > qchatMessageExtendManager
Definition: NIMSDKHeader.h:366
instancetype sharedSDK()
NSString * gitVersion()
id< NIMChatroomManager > chatroomManager
Definition: NIMSDKHeader.h:280
id< NIMQChatServerManager > qchatServerManager
Definition: NIMSDKHeader.h:346
id< NIMLoginManager > loginManager
Definition: NIMSDKHeader.h:230
void optimizeQChat()
id< NIMQChatMessageManager > qchatMessageManager
Definition: NIMSDKHeader.h:361
id< NIMDocTranscodingManager > docTranscodingManager
Definition: NIMSDKHeader.h:285
id< NIMQChatChannelManager > qchatChannelManager
Definition: NIMSDKHeader.h:351
id< NIMSignalManager > signalManager
Definition: NIMSDKHeader.h:315
id< NIMMediaManager > mediaManager
Definition: NIMSDKHeader.h:245
NSMutableDictionary * sceneDict
Definition: NIMSDKHeader.h:225
id< NIMTeamManager > teamManager
Definition: NIMSDKHeader.h:250
id< NIMChatManager > chatManager
Definition: NIMSDKHeader.h:235
NSString * currentLogFilepath()
id< NIMChatExtendManager > chatExtendManager
Definition: NIMSDKHeader.h:326
id< NIMSystemNotificationManager > systemNotificationManager
Definition: NIMSDKHeader.h:265
nullable NSString * appKey()
id< NIMCustomizedAPIManager > customizedAPIManager
Definition: NIMSDKHeader.h:376
id< NIMSuperTeamManager > superTeamManager
Definition: NIMSDKHeader.h:255
id< NIMQChatApnsManager > qchatApnsManager
Definition: NIMSDKHeader.h:341
NIMServerSetting * serverSetting
Definition: NIMSDKHeader.h:215
id< NIMPassThroughManager > passThroughManager
Definition: NIMSDKHeader.h:320
Definition: NIMSDKOption.h:19
Definition: NIMServerSetting.h:35