NIMSDK-iOS
载入中...
搜索中...
未找到
NIMChatroomEnterRequest.h
浏览该文件的文档.
1//
2// NIMChatroomEnterRequest.h
3// NIMLib
4//
5// Created by Netease.
6// Copyright © 2015 Netease. All rights reserved.
7//
8
9#import <Foundation/Foundation.h>
11
12NS_ASSUME_NONNULL_BEGIN
13
14
15
16/**
17 * 获取聊天室地址回调
18 */
19typedef void(^NIMRequestChatroomAddressesCallback)(NSError * __nullable error,NSArray<NSString *> * __nullable addresses);
20
21/**
22 * 获取聊天室地址方法
23 */
25
26
27
28/**
29 * 聊天室独立模式
30 */
31@interface NIMChatroomIndependentMode : NSObject
32
33/**
34 * 独立模式下的用户名
35 * @discussion 设置为 nil 情况下,SDK 将使用匿名账号进行登录。在匿名模式下,NIMChatroomEnterRequest 必须设置昵称和头像信息
36 */
37@property (nullable,nonatomic,copy) NSString *username;
38
39/**
40 * 如果username为nil,则使用匿名登录,此变量决定了匿名账号。如果为nil,则由SDK自动生成
41 */
42@property (nullable,nonatomic,copy) NSString *anonName;
43
44/**
45 * 独立模式下的 Token
46 * @discussion 当用户名为空时,token 无效
47 */
48@property (nullable,nonatomic,copy) NSString *token;
49
50/**
51 * 聊天室 AppKey, 可选填, 如果不填则使用云信IM AppKey
52 */
53@property (nullable,nonatomic,copy) NSString *chatroomAppKey;
54
55/**
56 * 注册获取聊天室地址的回调方法
57 *
58 * @param handler 获取聊天室地址信息的方法
59 * @discussion 在进入聊天室和刷新聊天室 IP 时,SDK 都会主动调用这个回调方法,并传入相应的两个参数 `roomId` 和 `callback`。
60 * 当前回调接口要求上层使用 `roomId` 走自己的网络请求获取对应聊天室地址并通过 callback 回调给 SDK。
61 * 需要注意的是无论请求是否成功,都需要通过 callback 进行回调,否则进入聊天室请求将会一直等待。同时此接口只需注册一次即可,多次注册将使用后者覆盖前者。
62 *
63 * 参考代码:
64 *
65 * [NIMChatroomIndependentMode registerRequestChatroomAddressesHandler:^(NSString * _Nonnull roomId, NIMRequestChatroomAddressesCallback _Nonnull callback) {
66 * [YourHTTPService request:roomId completion:^(NSError *error,NSArray *addresses)
67 * {
68 * //无论请求是否成功,都需要进行回调
69 * if(callback)
70 * {
71 * callback(error,addresses);
72 * }
73 * }];
74 * }];
75 *
76 */
77+ (void)registerRequestChatroomAddressesHandler:(NIMRequestChatroomAddressesHandler)handler;
78
79@end
80
81typedef NS_ENUM(NSInteger, NIMChatroomLoginAuthType) {
85};
86
87/**
88 * 进入聊天室请求
89 */
90@interface NIMChatroomEnterRequest : NSObject
91
92/**
93 * 聊天室Id
94 */
95@property (nonatomic,copy) NSString *roomId;
96
97/**
98 * 聊天室昵称
99 * @discussion 上层可以自主设置在聊天室内的昵称,没有设置则使用用户本身的信息
100 */
101@property (nullable,nonatomic,copy) NSString *roomNickname;
102
103/**
104 * 聊天室头像
105 * @discussion 上层可以自主设置在聊天室内的头像,没有设置则使用用户本身的信息
106 */
107@property (nullable,nonatomic,copy) NSString *roomAvatar;
108
109/**
110 * 本人的聊天室成员信息拓展字段,仅对当次进入有效
111 */
112@property (nullable,nonatomic,copy) NSString *roomExt;
113/**
114 * 聊天室事件通知拓展字段
115 */
116@property (nullable,nonatomic,copy) NSString *roomNotifyExt;
117/**
118 * 登录标签,可以设置多个,json_array格式,例子:["tag1", "tag2"]
119 */
120@property (nullable,nonatomic,copy) NSString *tags;
121/**
122 * 登录登出通知的目标标签,是一个标签表达式,见TagCalculator和TagPattern
123 */
124@property (nullable,nonatomic,copy) NSString *notifyTargetTags;
125
126
127/**
128 * 聊天室重连次数,默认为三次
129 * @discussion 设置成 0 后一旦一次连接失败后,SDK 将不在重试。 APP 可以根据自己的需求进行设置
130 */
131@property (nonatomic,assign) NSInteger retryCount;
132
133
134/**
135 * 聊天室独立模式
136 * @discussion 默认为 nil,即聊天室登录需要依赖 IM 登录,只有 IM 登录后才能够登录聊天室。设置后可以在不依赖 IM 通道的情况下进行登录
137 */
138@property (nullable,nonatomic,strong) NIMChatroomIndependentMode *mode;
139
140/**
141 * 鉴权方式
142 */
143@property (nonatomic, assign) NIMChatroomLoginAuthType loginAuthType;
144
145/**
146 * 扩展字段
147 */
148@property (nullable,nonatomic,strong) NSString *loginExt;
149
150/**
151 * 动态token回调
152 */
153@property (nonatomic, strong) NIMProvideChatroomDynamicTokenHandler dynamicTokenHandler;
154
155/**
156 * 坐标x
157 */
158@property (nonatomic, strong) NSDecimalNumber *locationX;
159
160/**
161 * 坐标y
162 */
163@property (nonatomic, strong) NSDecimalNumber *locationY;
164
165/**
166 * 坐标z
167 */
168@property (nonatomic, strong) NSDecimalNumber *locationZ;
169
170/**
171 * 订阅的消息的距离
172 */
173@property (nonatomic, strong) NSDecimalNumber *distance;
174
175/**
176 * 对某些资料内容另外的反垃圾的业务ID
177 */
178@property (nullable, nonatomic, copy) NSString *antispamBusinessId;
179
180@end
181
182
183
184
185
186NS_ASSUME_NONNULL_END
void(^ NIMRequestChatroomAddressesHandler)(NSString *roomId, NIMRequestChatroomAddressesCallback callback)
Definition: NIMChatroomEnterRequest.h:24
NIMChatroomLoginAuthType
Definition: NIMChatroomEnterRequest.h:81
@ NIMChatroomLoginAuthTypeDefault
Definition: NIMChatroomEnterRequest.h:82
@ NIMChatroomLoginAuthTypeThirdPart
Definition: NIMChatroomEnterRequest.h:84
@ NIMChatroomLoginAuthTypeDynamicToken
Definition: NIMChatroomEnterRequest.h:83
NS_ASSUME_NONNULL_BEGIN typedef void(^ NIMRequestChatroomAddressesCallback)(NSError *__nullable error, NSArray< NSString * > *__nullable addresses)
NSString *(^ NIMProvideChatroomDynamicTokenHandler)(NSString *__nullable roomId, NSString *__nullable account)
Definition: NIMChatroomManagerProtocol.h:129
Definition: NIMChatroomEnterRequest.h:91
Definition: NIMChatroomEnterRequest.h:32
NSString * anonName
Definition: NIMChatroomEnterRequest.h:42
NSString * chatroomAppKey
Definition: NIMChatroomEnterRequest.h:53
NSString * username
Definition: NIMChatroomEnterRequest.h:37
NSString * token
Definition: NIMChatroomEnterRequest.h:48