NIMSDK-iOS
载入中...
搜索中...
未找到
<NIMLoginManagerDelegate>协议 参考

#import <NIMLoginManagerProtocol.h>

类 <NIMLoginManagerDelegate> 继承关系图:

构造函数

(void) - onKick:clientType:
 
(void) - onKickout:
 
(void) - onLogin:
 
(void) - onAutoLoginFailed:
 
(void) - onMultiLoginClientsChanged
 
(void) - onMultiLoginClientsChangedWithType:
 
(void) - onTeamUsersSyncFinished:
 
(void) - onSuperTeamUsersSyncFinished:
 
(NSString *) - provideDynamicTokenForAccount:
 
(int) - reconnectDelay
 
(void) - onDataReady
 

详细描述

IM 登录相关回调接口,包括登录状态、多端登录、被踢下线、数据同步状态等事件的监听回调。

函数文档

◆ onAutoLoginFailed:

- (void) onAutoLoginFailed: (NSError *)  error
optional

IM 自动登录失败的回调。

使用场景:
使用 IM 自动登录后,除了因为网络超时导致的错误(SDK 会在网络超时时启用断网重连机制进行重连,上层应用无需处理),如果发生其他错误(如 AppKey 未被设置,参数错误,密码错误,多端登录冲突,账号被封禁,操作过于频繁等),那么在集成时需要上层应用处理对应的逻辑。您可以通过注册该方法回调,获取自动登录失败的原因,并根据原因处理上层逻辑。
例如:自动登录失败的原因是用户名和密码不匹配,那么上层应用需实现登出并提示用户手动登录或是从应用服务器刷新相应的用户名和密码等逻辑。
调用时机:
必须在创建 NIM SDK 实例(sharedSDK)之后,才能调用该接口;建议在初始化 NIM SDK 后,登录 IM 前注册该回调。
触发时机:
自动登录失败时触发回调。
参数说明:
error:自动登录失败的原因
相关接口:
autoLogin: 自动登录 IM

◆ onDataReady

- (void) onDataReady
optional

消息数据库已经打开

◆ onKick:clientType:

- (void) onKick: (NIMKickReason code
clientType: ("Use -onKickout: instead")  NIMDeprecated 
optional

被其他端(服务端/客户端)踢下线的回调。

弃用:
请使用- (void)onKickout:result;
参数说明:
参数名称描述
code被踢下线的原因
clientType将其踢下线的设备端的类型

◆ onKickout:

- (void) onKickout: (NIMLoginKickoutResult *)  result
optional

被其他端(服务端/客户端)踢下线的回调。

使用场景:
在被踢下线时,需要知晓被踢原因以及将其踢下线的设备端类型(包括服务端和客户端)。
调用时机:
建议在初始化 NIM SDK 后,登录 IM 前注册该回调。
触发时机:
  • 被同一个 IM 账号的服务端踢下线。
  • 被同一个 IM 账号的其他客户端手动调用踢人接口踢下线。
  • 被同一个 IM 账号的其他客户端踢下线(互斥客户端一端登录自动挤掉上一个登录中的客户端,该逻辑可通过云信控制台进行配置,目前支持四种不同的 IM 多端登录策略)。
注意事项:
被踢下线后,若需要重新登录,建议先进行注销(登出),再切换到登录界面进行登录。
参数说明:
result:被踢后收到的回调信息,包括被踢下线的原因(NIMKickReason)和将其踢下线的设备端的类型(NIMLoginClientType)
相关接口:
kickOtherClient:completion: 主动将其他客户端踢下线

◆ onLogin:

- (void) onLogin: (NIMLoginStep step
optional

IM 登录状态的回调。

使用场景:
该回调主要用于客户端登录页面的 UI 刷新。
调用时机:
必须在创建 NIM SDK 实例(sharedSDK)之后,才能调用该接口;建议在初始化 NIM SDK 后,登录 IM 前注册该回调。
触发时机:
从调用登录 IM 接口开始,到登录结束(包括成功和失败)之间符合任一状态(NIMLoginStep)时触发回调。
注意事项:
登录成功后,SDK 会自动同步数据,数据同步完成后,整个登录过程才算真正完成。
参数说明:
step:IM 登录状态信息,即登录进度,登录过程中的状态变更请参考登录状态的转换流程
相关接口:
login:token:authType:loginExt:completion: 登录 IM
autoLogin: 自动登录 IM
logout: 登出(注销) IM

◆ onMultiLoginClientsChanged

- (void) onMultiLoginClientsChanged
optional

多端登录变更的回调,监听同一账号的其他端的登录状态变更情况,即当用户通过某个客户端登录时,其他(同一账号)已经在线的客户端会收到该回调。

弃用:
请使用- (void)onMultiLoginClientsChangedWithType:type;

◆ onMultiLoginClientsChangedWithType:

- (void) onMultiLoginClientsChangedWithType: (NIMMultiLoginType type
optional

多端登录变更的回调,监听同一账号的其他端的登录状态变更情况,即当用户通过某个客户端登录时,其他(同一账号)已经在线的客户端会收到该回调。

使用场景:
若应用支持同一账号多端登录以及互踢下线等操作,建议同一账号的各个客户端在登录注册该回调,获取其他客户端的登录状态,可以搭配 currentLoginClients 一起使用,查询当前登录的其他设备列表,包含客户端类型、操作系统以及登录时间等信息。
调用时机:
必须在创建 NIM SDK 实例(sharedSDK)之后,才能调用该接口;建议在初始化 NIM SDK 后,登录 IM 前注册该回调。
参数说明:
type:同一账号其他端的登录状态信息,分为“其他端上线”,“其他端下线”,“目前已有其他端登录”
相关接口:
currentLoginClients :查询同一账号的其他已登录设备

◆ onSuperTeamUsersSyncFinished:

- (void) onSuperTeamUsersSyncFinished: (BOOL)  success
optional

超大群用户信息同步完成的回调。

使用场景:
若需要使用应用的超大群成员信息,那么要确保超大群用户信息已同步至SDK 的本地数据库,可以使用该接口回调知晓超大群用户信息同步是否完成。
调用时机:
必须在创建 NIM SDK 实例(sharedSDK)之后,才能调用该接口;建议在初始化 NIM SDK 后,登录 IM 前注册该回调。
注意事项:
若同步失败,建议手动将超大群用户信息同步至 SDK 的本地数据库,否则可能会影响 SDK 超大群相关接口的使用。
参数说明:
success:超大群用户信息是否同步成功

◆ onTeamUsersSyncFinished:

- (void) onTeamUsersSyncFinished: (BOOL)  success
optional

群组用户信息同步完成的回调。

使用场景:
若需要使用应用的群组成员信息,那么要确保群组用户信息已同步至SDK 的本地数据库,可以使用该接口回调知晓群组用户信息同步是否完成。
调用时机:
必须在创建 NIM SDK 实例(sharedSDK)之后,才能调用该接口;建议在初始化 NIM SDK 后,登录 IM 前注册该回调。
注意事项:
若同步失败,建议手动将群组用户信息同步至 SDK 的本地数据库,否则可能会影响 SDK 群组相关接口的使用。
参数说明:
success:群组用户信息是否同步成功

◆ provideDynamicTokenForAccount:

- (NSString *) provideDynamicTokenForAccount: (NSString *)  account
optional

动态 Token 回调,用于获取动态 Token,后续以动态 token 鉴权方式登录 IM。

使用场景:
如果您有正式的生产环境,且您的业务对用户信息安全有较高的要求,可使用动态 Token 鉴权方式登录 IM。通过该方式登录前,需要调用该接口获取动态 Token。
调用时机:
必须在创建 NIM SDK 实例(sharedSDK)之后,才能调用该接口;建议在初始化 NIM SDK 后,登录 IM 前注册该回调。
注意事项:
  • 通过该接口获取的 Token 是动态且临时有效的。您可以通过服务端设置该动态 token 的有效期,建议不要太长。
  • 若选择动态 token 鉴权方式,在调用登录接口时需要传入登录方式(authType,1 为动态 token 鉴权方式)。
参数说明:
account:用户的 IM 账号,即 accid
返回:
对应账号的动态 token
相关接口:
login:token:authType:loginExt:completion: 登录 IM
弃用:
请使用 NIMSDKConfigDelegate dynamicTokenForAccount:

◆ reconnectDelay

- (int) reconnectDelay
optional

自定义重连策略回调。回调中返回自动重连的时间间隔,即当自动登录失败后多久后触发自动重连。
SDK 默认的自动重连策略:自动登录失败后 2 秒触发自动重连触,如果一直连不上,重连时间指数级增长,2、4、6、8、16、32、64 ...


该协议的文档由以下文件生成: