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