差别
这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 后一修订版 两侧同时换到之后的修订记录 | ||
im:ios:sdk:basic [2018/11/02 11:18] huanxinfudh |
im:ios:sdk:basic [2020/01/15 11:10] huanxinfudh [自动登录] |
||
---|---|---|---|
行 50: | 行 50: | ||
注册模式分两种,开放注册和授权注册。 | 注册模式分两种,开放注册和授权注册。 | ||
+ | |||
+ | 建议使用异步注册方法,防止网络不好的情况下,出现卡UI主线程的情况出现。 | ||
* 只有开放注册时,才可以客户端注册。开放注册是为了测试使用,正式环境中不推荐使用该方式注册环信账号。 | * 只有开放注册时,才可以客户端注册。开放注册是为了测试使用,正式环境中不推荐使用该方式注册环信账号。 | ||
行 55: | 行 57: | ||
<code objc> | <code objc> | ||
- | EMError *error = [[EMClient sharedClient] registerWithUsername:@"8001" password:@"111111"]; | + | [[EMClient sharedClient] registerWithUsername:@"8001" password:@"111111" completion:^(NSString *aUsername, EMError *aError) { |
- | if (error==nil) { | + | if (!aError) { |
- | NSLog(@"注册成功"); | + | NSLog(@"注册成功"); |
- | } | + | } else { |
+ | NSLog(@"注册失败的原因---%@", aError.errorDescription); | ||
+ | } | ||
+ | }]; | ||
</code> | </code> | ||
行 64: | 行 69: | ||
登录:调用 SDK 的登录接口进行的操作。 | 登录:调用 SDK 的登录接口进行的操作。 | ||
+ | |||
+ | 建议使用异步登录方法,防止网络不好的情况下,出现卡UI主线程的情况出现。 | ||
<code objc> | <code objc> | ||
- | EMError *error = [[EMClient sharedClient] loginWithUsername:@"8001" password:@"111111"]; | + | [[EMClient sharedClient] loginWithUsername:@"8001" password:@"111111" completion:^(NSString *aUsername, EMError *aError) { |
- | if (!error) { | + | if (!aError) { |
- | NSLog(@"登录成功"); | + | NSLog(@"登录成功"); |
- | } | + | } else { |
+ | NSLog(@"登录失败的原因---%@", aError.errorDescription); | ||
+ | } | ||
+ | }]; | ||
</code> | </code> | ||
行 79: | 行 89: | ||
<code objc> | <code objc> | ||
- | EMError *error = [[EMClient sharedClient] loginWithUsername:@"8001" password:@"111111"]; | + | [[EMClient sharedClient] loginWithUsername:@"8001" password:@"111111" completion:^(NSString *aUsername, EMError *aError) { |
- | if (!error) | + | if (!aError) { |
- | { | + | [[EMClient sharedClient].options setIsAutoLogin:YES]; |
- | [[EMClient sharedClient].options setIsAutoLogin:YES]; | + | } |
- | } | + | }]; |
</code> | </code> | ||
- | 自动登录在以下几种情况下会被取消: | + | 用户调用了 SDK 的登出操作,自动登录会取消。 |
- | * 用户调用了 SDK 的登出动作; | + | 当出现以下几种情况时,建议调用 SDK 的登出操作。 |
- | * 用户在别的设备上更改了密码,导致此设备上自动登录失败; | + | * 用户的账号从服务器端删除 |
- | * 用户的账号被从服务器端删除; | + | <code objc> |
- | * 用户从另一个设备登录,把当前设备上登录的用户踢出。 | + | /*! |
+ | * 当前登录账号已经被从服务器端删除时会收到该回调 | ||
+ | */ | ||
+ | - (void)userAccountDidRemoveFromServer; | ||
+ | </code> | ||
+ | * 用户的账号被禁用 | ||
+ | * 用户账号被强制下线 | ||
+ | * 用户在别的设备上登录,把当前设备上登录的用户踢出 | ||
+ | * 用户在别的设备上更改了密码 | ||
所以,在您调用登录方法前,应该先判断是否设置了自动登录,如果设置了,则不需要您再调用。 | 所以,在您调用登录方法前,应该先判断是否设置了自动登录,如果设置了,则不需要您再调用。 | ||
行 98: | 行 116: | ||
BOOL isAutoLogin = [EMClient sharedClient].options.isAutoLogin; | BOOL isAutoLogin = [EMClient sharedClient].options.isAutoLogin; | ||
if (!isAutoLogin) { | if (!isAutoLogin) { | ||
- | EMError *error = [[EMClient sharedClient] loginWithUsername:@"8001" password:@"111111"]; | + | [[EMClient sharedClient] loginWithUsername:@"8001" password:@"111111" completion:^(NSString *aUsername, EMError *aError) { |
+ | if (!aError) { | ||
+ | NSLog(@"登录成功"); | ||
+ | } | ||
+ | }]; | ||
} | } | ||
</code> | </code> | ||
行 135: | 行 157: | ||
退出登录分两种类型:主动退出登录和被动退出登录。 | 退出登录分两种类型:主动退出登录和被动退出登录。 | ||
+ | |||
+ | 建议使用异步退出登录方法,防止网络不好的情况下,出现卡UI主线程的情况出现。 | ||
* 主动退出登录:调用 SDK 的退出接口; | * 主动退出登录:调用 SDK 的退出接口; | ||
行 142: | 行 166: | ||
<code objc> | <code objc> | ||
- | EMError *error = [[EMClient sharedClient] logout:YES]; | + | [[EMClient sharedClient] logout:YES completion:^(EMError *aError) { |
- | if (!error) { | + | if (!aError) { |
- | NSLog(@"退出成功"); | + | NSLog(@"退出登录成功"); |
- | } | + | } else { |
+ | NSLog(@"退出登录失败的原因---%@", aError.errorDescription); | ||
+ | } | ||
+ | }]; | ||
</code> | </code> | ||
行 167: | 行 194: | ||
<WRAP group> | <WRAP group> | ||
<WRAP half column> | <WRAP half column> | ||
- | 上一页:[[im:ios:sdk:import|iOS SDK 介绍及导入]] | + | 上一页:[[im:ios:sdk:prepare|iOS SDK 快速集成]] |
</WRAP> | </WRAP> | ||
<WRAP half column> | <WRAP half column> | ||
- | 下一页:[[im:ios:sdk:quickstart|iOS SDK 快速集成]] | + | 下一页:[[im:ios:sdk:upgradeguide|SDK 2.x 至 3.x 升级指南]] |
</WRAP> | </WRAP> | ||
</WRAP> | </WRAP> | ||