我集成的环信sdk版本是3.6.1,截止到目前是最新的版本。安卓sdk添加好友功能默认自动添加,而iOS需要手动去添加。下面给出解决方法
第一步:遵循添加好友代理
@interface ContactsViewController ()<EMContactManagerDelegate>
第二步:注册添加好友的代理
- (void)viewDidLoad {
[super viewDidLoad];
//注册好友回调
[[EMClient sharedClient].contactManager addDelegate:self delegateQueue:nil];
}
第三步:执行添加好友的方法
- (void)viewDidLoad {
[super viewDidLoad];
//添加好友
[[EMClient sharedClient].contactManager addContact:@"test" message:nil completion:^(NSString *aUsername, EMError *aError) {
if (aError) {
[EMAlertController showErrorAlert:@"添加失败"];
} else {
[EMAlertController showSuccessAlert:@"已发出好友申请"];
}
}];
}
第四步: 监听回调,执行代理方法
/*!
* 用户A发送加用户B为好友的申请,用户B会收到这个回调
*
* @param aUsername 用户名
* @param aMessage 附属信息
*/
- (void)friendRequestDidReceiveFromUser:(NSString *)aUsername
message:(NSString *)aMessage{
EMError *error = [[EMClient sharedClient].contactManager acceptInvitationForUsername:aUsername];
if (!error) {
[EMAlertController showSuccessAlert:@"同意添加"];
}
}
当用户A发送加用户B为好友的申请,用户B会收到第四步的回调,我们在第四步直接调用同意添加的方法即可,至于是否弹出提示,按照产品需求来即可。
注意:有童鞋可能遇到过遵循了代理,也注册了监听,也执行了添加好友的方法,但 friendRequestDidReceiveFromUser 代理方法不执行,这种情况是因为添加好友addContact的方法写在了注册好友回调之后,所以代理方法不执行。一定要先注册,再执行添加好友的方法,按上面顺序来即可。
如有问题,请在下方留言沟通。
网友评论