NIMSDK-iOS
载入中...
搜索中...
未找到
NIMSDKConfig.h
浏览该文件的文档.
1//
2// NIMSDKConfig.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
14@class NIMMessage;
16@protocol NIMMsgIndexProduceDelegate;
18
19/**
20 * SDK 配置委托
21 */
22@protocol NIMSDKConfigDelegate <NSObject>
23
24@optional
25
26/**
27 * 是否需要忽略某个通知
28 *
29 * @param notification 通知对象
30 *
31 * @return 是否忽略
32 */
33- (BOOL)shouldIgnoreNotification:(NIMNotificationObject *)notification;
34
35/**
36 * 是否需要忽略某条消息
37 *
38 * @param message 消息对象
39 *
40 * @return 是否忽略
41 */
42- (BOOL)shouldIgnoreMessage:(NIMMessage *)message;
43
44/**
45 * 聊天室cdn统计回调,回调时间间隔为NIMSDKConfig.cdnTrackInterval
46 */
47- (void)onChatroomCdnTrack:(NIMChatroomCdnTrackInfo *)trackInfo forRoom:(NSString *)roomID;
48
49- (NSString *)tokenCallback:(const NSString *)url;
50
51/**
52 * 采用动态Token登录时,SDK通过该回调方法从App获取Token
53 */
54- (nullable NSString *)dynamicTokenForAccount:(NSString *)account;
55
56/**
57 * SDK通过该回调方法从App获取LoginExt
58 */
59- (nullable NSString *)dynamicLoginExtForAccount:(NSString *)account;
60
61/**
62 * 采用动态Token登录聊天室时,SDK通过该回调方法从App获取聊天室登陆Token
63 */
64- (nullable NSString *)dynamicChatRoomTokenForAccount:(NSString *)account room:(NSString *)roomId appKey:(NSString *)appKey;
65
66/**
67 * SDK通过该回调方法从App获取聊天室LoginExt
68 */
69- (nullable NSString *)dynamicChatRoomLoginExtForAccount:(NSString *)account room:(NSString *)roomId appKey:(NSString *)appKey;
70
71@end
72
73/**
74 * NIM SDK 配置项目
75 */
76@interface NIMSDKConfig : NSObject
77
78/**
79 * 返回配置项实例
80 *
81 * @return 配置项
82 */
83+ (instancetype)sharedConfig;
84
85/**
86 * 设置禁用NIMSDK tracroute 能力
87 * @discussion 默认为NO,SDK会在请求失败时,进行 traceroute ,探测网路中各节点,以判断在哪个节点失去连接
88 */
89@property (nonatomic,assign) BOOL disableTraceroute;
90
91
92/**
93 * 是否在收到消息后自动下载附件 (群和个人)
94 * @discussion 默认为YES,SDK会在第一次收到消息是直接下载消息附件,上层开发可以根据自己的需要进行设置
95 */
96@property (nonatomic,assign) BOOL fetchAttachmentAutomaticallyAfterReceiving;
97
98
99/**
100 * 是否在收到聊天室消息后自动下载附件
101 * @discussion 默认为NO
102 */
104
105
106/**
107 * 是否使用 NSFileProtectionNone 作为云信文件的 NSProtectionKey
108 * @discussion 默认为 NO,只有在上层 APP 开启了 Data Protection 时才起效
109 */
110@property (nonatomic,assign) BOOL fileProtectionNone;
111
112/**
113 * APP 是否开启 Data Protection
114 * @discussion 默认为 NO,如果开启,请将此设为YES
115 */
116@property (nonatomic,assign) BOOL enableDataProtection;
117
118
119/**
120 * 是否需要将被撤回的消息计入未读计算考虑
121 * @discussion 默认为 NO。设置成 YES 的情况下,如果被撤回的消息本地还未读,那么当消息发生撤回时,对应会话的未读计数将减 1 以保持最近会话未读数的一致性
122 * 默认未读 NO 的原因是客户端常常需要直接再写入一条 tip 消息用于提醒显示,使用 NO 作为默认值直接写入一条已读 tip 消息,避免未读计数发生两次变化,最终导致界面重复刷新
123 * 如果客户场景不需要写入 tip 消息,可以设置为 YES,以保持未读计数的一致性。
124 */
125@property (nonatomic,assign) BOOL shouldConsiderRevokedMessageUnreadCount;
126
127/**
128 * 是否需要多端同步未读数
129 * @discusssion 默认为 NO。设置成 YES 的情况下,同个账号多端(PC 和 移动端等)将同步未读计数。
130 */
131@property (nonatomic,assign) BOOL shouldSyncUnreadCount;
132
133
134/**
135 * 是否将群通知计入未读
136 * @discusssion 默认为 NO。设置成 YES 的情况下,收到的群通知也会计入未读数
137 */
138@property (nonatomic,assign) BOOL shouldCountTeamNotification;
139
140
141/**
142 * 针对用户信息开启 https 支持
143 * @discusssion 默认为 YES。在默认情况下,我们认为用户头像,群头像,聊天室类用户头像等信息都是默认托管在云信上,所以 SDK 会针对他们自动开启 https 支持。
144 * 但如果你需要将这些信息都托管在自己的服务器上,需要设置这个接口为 NO,避免 SDK 自动将你的 http url 自动转换为 https url。
145 */
146@property (nonatomic,assign) BOOL enabledHttpsForInfo;
147
148
149/**
150 * 针对消息内容开启 https 支持
151 * @discusssion 默认为 YES。在默认情况下,我们认为消息,包括图片,视频,音频信息都是默认托管在云信上,所以 SDK 会针对他们自动开启 https 支持。
152 * 但如果你需要将这些信息都托管在自己的服务器上,需要设置这个接口为 NO,避免 SDK 自动将你的 http url 自动转换为 https url。 (强烈不建议)
153 * 需要注意的是即时设置了这个属性,通过 iOS SDK 发出去的消息 URL 仍是 https 的,设置这个值只影响接收到的消息 URL 格式转换
154 */
155@property (nonatomic,assign) BOOL enabledHttpsForMessage;
156
157
158/**
159 * 自动登录重试次数
160 * @discusssion 默认为 0。即默认情况下,自动登录将无限重试。设置成大于 0 的值后,在没有登录成功前,自动登录将重试最多 maxAutoLoginRetryTimes 次,如果失败,则抛出错误 (NIMLocalErrorCodeAutoLoginRetryLimit)。
161 */
162@property (nonatomic,assign) NSInteger maxAutoLoginRetryTimes;
163
164
165/**
166 * 本地 log 存活期
167 * @discusssion 默认为 7 天。即超过 7 天的 log 将被清除。只能设置大于等于 2 的值。
168 */
169@property (nonatomic,assign) NSInteger maximumLogDays;
170
171/**
172 * 是否支持动图缩略
173 * @discusssion 默认为 NO。即默认情况下,从服务器获取原图缩略图时,如果原图为动图,我们将返回原图第一帧的缩略图。
174 * 而开启这个选项后,我们将返回缩略图后的动图。这个选项只影响从服务器获取的缩略图,不影响本地生成的缩略图。
175 */
176@property (nonatomic,assign) BOOL animatedImageThumbnailEnabled;
177
178/**
179 * 是否禁止后台重连
180 * @discusssion 默认为 NO。即默认情况下,当程序退到后台断开连接后,如果 App 仍能运行,SDK 将继续执行自动重连机制。设置为 YES 后在后台将不自动重连,重连将被推迟到前台进行。
181 * 只有特殊用户场景才需要此设置,无明确原因请勿设置。
182 * @deprecated 功能已下线
183 */
184@property (nonatomic,assign) BOOL reconnectInBackgroundStateDisabled;
185
186/**
187 * 是否开启群回执功能
188 * @discusssion 默认为 NO。
189 */
190@property (nonatomic,assign) BOOL teamReceiptEnabled;
191
192/**
193 * 配置项委托
194 */
195@property (nullable,nonatomic,weak) id<NIMSDKConfigDelegate> delegate;
196
197/**
198 客户端自定义信息,用于多端登录时同步该信息
199 */
200@property (nonatomic,copy) NSString *customTag;
201
202/**
203 * 文件快传本地开关,默认YES
204 */
205@property (nonatomic,assign) BOOL fileQuickTransferEnabled;
206
207/**
208* 是否开启异常错误上报, 默认 NO,不上报
209* @discussion 用户可以选择开启该选项,方便云信分析SDK发生的错误,优化SDK
210*/
211@property (nonatomic, assign) BOOL exceptionOptimizationEnabled;
212
213/**
214* 是否开启异步读取最近会话,默认NO,不开启
215* @discussion 对于最近会话比较多的用户,初始读取数据库时,可能影响到启动速度,用户可以选择开启该选项,开启异步读取最近会话,
216* allRecentSessions会优先返回一部分最近会话,等到全部读取完成时,通过回调通知用户刷新UI。
217*/
218@property (nonatomic, assign) BOOL asyncLoadRecentSessionEnabled;
219
220/**
221* 是否开启会话数据库备份,默认NO,不开启
222* @discussion 开启数据库备份后,如果遇到数据库文件损坏,SDK会恢复备份的数据库文件,并重置漫游时间戳
223*/
224@property (nonatomic, assign) BOOL sessionDatabaseBackupEnabled;
225
226/**
227 * 日志上传大小上限,默认 0,不限制,单位(byte)
228 */
229@property (nonatomic, assign) unsigned long long maxUploadLogSize;
230
231/**
232 * 是否同步置顶会话记录,默认NO
233 */
234@property (nonatomic,assign) BOOL shouldSyncStickTopSessionInfos;
235
236/**
237 客户端自定义登录端类型,默认 0,需要设置大于0的值。
238 */
239@property (nonatomic,assign) NSInteger customClientType;
240
241/**
242 * cdn统计回调触发间隔。触发cdn拉流前设置,触发拉流后改动将不生效。0s代表不统计。默认30s。
243 */
244@property (nonatomic, assign) NSTimeInterval cdnTrackInterval;
245
246/**
247 * 聊天室消息接收回调最小时间间隔,不设置时,采用默认值
248 * @discusssion SDK采纳的有效设置区间为:50毫秒到500毫秒,如果低于或高于边界值,采用边界值
249 */
250@property (nonatomic, assign) NSTimeInterval chatroomMessageReceiveMinInterval;
251
252/**
253 * NIMSDK优化设置
254 * @discussion 此选项为高级设置,具体设置需要联系技术支持。
255 */
256@property (nullable,nonatomic,copy) NSString *optimizeSettings;
257
258/**
259 * 设置 SDK 根目录
260 *
261 * @param sdkDir SDK 根目录
262 * @discussion 设置该值后 SDK 产生的数据(包括聊天记录,但不包括临时文件)都将放置在这个目录下,如果不设置,所有数据将放置于 $Document/NIMSDK目录下
263 * 该配置项必须在 NIMSDK 任一一个 sharedSDK 方法调用之前调用,否则配置无法生效
264 */
265- (void)setupSDKDir:(NSString *)sdkDir;
266
267/**
268 * 配置无效
269 * @deprecated
270 */
271@property (nonatomic,assign) BOOL linkQuickSwitch;
272
273/**
274 * 消息索引生成委托
275 */
276@property (nullable, nonatomic) id<NIMMsgIndexProduceDelegate> msgIndexProducer;
277
278@property (nonatomic, copy) NSString * flutterSDKVersion;
279
280//@property (nonatomic, strong) NIMFcsConfig * fcsConfig;
281@property(nonatomic, assign) BOOL fcsEnable;
282@property(nonatomic, assign) NSInteger fcsAuthType;
283@property(nonatomic, strong) NSString *fcsUa;
284@property(nonatomic, strong) NSString *fcsRefer;
285
286@property (nonatomic, assign) BOOL isSingleTable;
287
288/**
289 * 是否开启设备指纹功能
290 * 默认YES
291 */
292@property(nonatomic, assign) BOOL growDeviceEnabled;
293
294/**
295 * 日志脱敏配置
296 */
298
299/**
300 * 消息缩略图的尺寸
301 * 默认350
302 */
303@property (nonatomic, assign) NSInteger thumbnailSize;
304
305/**
306 * 默认NO,如果为YES,则消息状态是否成功会结合是否被拉入黑名单进行判断
307 */
308@property (nonatomic, assign) BOOL fixMsgStatusByBlackList;
309
310/**
311 * 默认NO,如果为YES,会上报被过滤的消息
312 */
313@property (nonatomic, assign) BOOL reportIgnoredMessage;
314
315@end
316
317
318NS_ASSUME_NONNULL_END
Definition: NIMChatroomCdnTrackInfo.h:14
Definition: NIMLogDesensitizationConfig.h:10
Definition: NIMMessage.h:90
Definition: NIMNotificationObject.h:21
Definition: NIMSDKConfig.h:77
NSInteger thumbnailSize
Definition: NIMSDKConfig.h:303
NSInteger maxAutoLoginRetryTimes
Definition: NIMSDKConfig.h:162
NIMLogDesensitizationConfig * logDesensitizationConfig
Definition: NIMSDKConfig.h:297
id< NIMMsgIndexProduceDelegate > msgIndexProducer
Definition: NIMSDKConfig.h:276
NSTimeInterval chatroomMessageReceiveMinInterval
Definition: NIMSDKConfig.h:250
BOOL enabledHttpsForMessage
Definition: NIMSDKConfig.h:155
unsigned long long maxUploadLogSize
Definition: NIMSDKConfig.h:229
NSTimeInterval cdnTrackInterval
Definition: NIMSDKConfig.h:244
NSString * fcsUa
Definition: NIMSDKConfig.h:283
BOOL enabledHttpsForInfo
Definition: NIMSDKConfig.h:146
BOOL reportIgnoredMessage
Definition: NIMSDKConfig.h:313
BOOL fetchAttachmentAutomaticallyAfterReceiving
Definition: NIMSDKConfig.h:96
BOOL growDeviceEnabled
Definition: NIMSDKConfig.h:292
BOOL fixMsgStatusByBlackList
Definition: NIMSDKConfig.h:308
BOOL fetchAttachmentAutomaticallyAfterReceivingInChatroom
Definition: NIMSDKConfig.h:103
BOOL fileProtectionNone
Definition: NIMSDKConfig.h:110
BOOL exceptionOptimizationEnabled
Definition: NIMSDKConfig.h:211
NSInteger maximumLogDays
Definition: NIMSDKConfig.h:169
instancetype sharedConfig()
BOOL sessionDatabaseBackupEnabled
Definition: NIMSDKConfig.h:224
BOOL enableDataProtection
Definition: NIMSDKConfig.h:116
BOOL fcsEnable
Definition: NIMSDKConfig.h:281
BOOL shouldCountTeamNotification
Definition: NIMSDKConfig.h:138
NSInteger customClientType
Definition: NIMSDKConfig.h:239
NSString * fcsRefer
Definition: NIMSDKConfig.h:284
BOOL fileQuickTransferEnabled
Definition: NIMSDKConfig.h:205
BOOL asyncLoadRecentSessionEnabled
Definition: NIMSDKConfig.h:218
NSString * flutterSDKVersion
Definition: NIMSDKConfig.h:278
id< NIMSDKConfigDelegate > delegate
Definition: NIMSDKConfig.h:195
BOOL animatedImageThumbnailEnabled
Definition: NIMSDKConfig.h:176
BOOL isSingleTable
Definition: NIMSDKConfig.h:286
BOOL reconnectInBackgroundStateDisabled
Definition: NIMSDKConfig.h:184
BOOL shouldConsiderRevokedMessageUnreadCount
Definition: NIMSDKConfig.h:125
BOOL shouldSyncStickTopSessionInfos
Definition: NIMSDKConfig.h:234
BOOL teamReceiptEnabled
Definition: NIMSDKConfig.h:190
BOOL shouldSyncUnreadCount
Definition: NIMSDKConfig.h:131
BOOL linkQuickSwitch
Definition: NIMSDKConfig.h:271
BOOL disableTraceroute
Definition: NIMSDKConfig.h:89
NSInteger fcsAuthType
Definition: NIMSDKConfig.h:282
NSString * optimizeSettings
Definition: NIMSDKConfig.h:256
NSString * customTag
Definition: NIMSDKConfig.h:200