NIMSDK-iOS
载入中...
搜索中...
未找到
NIMQChatManagerProtocol.h
浏览该文件的文档.
1//
2// NIMNIMQChatManagerProtocol.h
3// NIMLib
4//
5// Created by Netease.
6// Copyright © 2022 Netease. All rights reserved.
7//
8
9#import <Foundation/Foundation.h>
10
11#import "NIMQChatAPIDefs.h"
12
14
15NS_ASSUME_NONNULL_BEGIN
16
17@class NIMLoginClient;
19
23
24/**
25 * 进入圈组的回调
26 */
27typedef void(^NIMQChatLoginHandler)(NSError *__nullable error, NIMQChatLoginResult *__nullable result);
28
29/**
30 * 圈组管理器回调
31 */
32@protocol NIMQChatManagerDelegate <NSObject>
33
34@optional
35/**
36 * 被踢出圈组回调
37 *
38 * @param result 结果详情
39 */
40- (void)qchatKickedOut:(NIMLoginKickoutResult *)result;
41
42/**
43 * 圈组多端登录发生变化
44 * 当有其他端登录或者注销时,会通过此接口通知到UI
45 * 登录成功后,如果有其他端登录着,也会发出通知
46 *
47 * @param type 多端登录变化类型
48 */
49- (void)qchatMultiSpotLogin:(NIMMultiLoginType)type;
50
51/**
52 * 圈组在线状态/登录状态回调
53 *
54 * @param result 结果详情
55 */
56- (void)qchatOnlineStatus:(NIMQChatOnlineStatusResult *)result;
57
58/**
59 * 圈组自动登录出错
60 *
61 * @param error 自动登录出错原因
62 */
63- (void)qchatAutoLoginFailed:(NSError *)error;
64
65/**
66 * 圈组自动退出
67 * @discussion 当前圈组需要依赖IM功能,当IM账号退出,或登录账号与圈组不同时,圈组自动退出
68 */
69- (void)qchatAutoLogout;
70
71@end
72
73/**
74 * 圈组管理器
75 */
76@protocol NIMQChatManager <NSObject>
77
78/**
79 * 进入圈组
80 *
81 * @param param 传入参数
82 * @param completion 结果回调
83 */
84- (void)login:(nullable NIMQChatLoginParam *)param
85 completion:(nullable NIMQChatLoginHandler)completion;
86
87/**
88 * 退出圈组
89 *
90 * @param completion 结果回调
91 */
92- (void)logout:(nullable NIMQChatHandler)completion;
93
94/**
95 * 踢掉多端在线的其他端
96 *
97 * @param param 传入参数
98 * @param completion 结果回调
99 */
100- (void)kickOtherClient:(NIMLoginClient *)client
101 completion:(nullable NIMQChatHandler)completion;
102
103/**
104 * 返回当前登录帐号
105 *
106 * @return 当前登录帐号
107 */
108- (nullable NSString *)currentAccount;
109
110/**
111 * 获取当前登录圈组的设备列表
112 *
113 * @return 当前登录设备列表 内部是NIMLoginClient,不包括自己
114 */
115- (nullable NSArray<NIMLoginClient *> *)currentLoginClients;
116
117/**
118 * 添加通知对象
119 *
120 * @param delegate 通知对象
121 */
122- (void)addDelegate:(id<NIMQChatManagerDelegate>)delegate;
123
124/**
125 * 移除通知对象
126 *
127 * @param delegate 通知对象
128 */
129- (void)removeDelegate:(id<NIMQChatManagerDelegate>)delegate;
130
131@end
132
133NS_ASSUME_NONNULL_END
NIMMultiLoginType
Definition: NIMLoginManagerProtocol.h:140
void(^ NIMQChatHandler)(NSError *__nullable error)
Definition: NIMQChatDefs.h:280
void(^ NIMQChatLoginHandler)(NSError *__nullable error, NIMQChatLoginResult *__nullable result)
Definition: NIMQChatManagerProtocol.h:27
Definition: NIMLoginClient.h:62
Definition: NIMLoginKickoutResult.h:16
Definition: NIMQChatLoginParam.h:26
Definition: NIMQChatLoginResult.h:18
Definition: NIMQChatOnlineStatusResult.h:18