问题描述
首次向某个用户发送请求时,该用户可以收到好友请求。重复多次像同一个用户发送请求时,显示发送请求成功,但是该好友收不到请求消息。- (void)didReceiveBuddyRequest:(NSString *)username message:(NSString *)message 不会回调,- (BOOL)hasSendBuddyRequest:(NSString *)buddyName { NSArray *buddyList = [[[EaseMob sharedInstance] chatManager] buddyList]; for (EMBuddy *buddy in buddyList) { if ([buddy.username isEqualToString:buddyName] && buddy.followState == eEMBuddyFollowState_NotFollowed && buddy.isPendingApproval) { return YES; } } return NO;}该方法适用性在哪里?isPendingApproval在自己的好友体系中如何体现。
解决方案
我们这边做了处理了,就是同一个好友发送的好友请求,如果你没有处理,就不能再发送第二次了,显示的就是第一次发送的那个。
解决方案二:
如果不能再次发送请求,那界面上就不应该能够让用户继续发送请求了,- (BOOL)hasSendBuddyRequest:(NSString *)buddyName { NSArray *buddyList = [[[EaseMob sharedInstance] chatManager] buddyList]; for (EMBuddy *buddy in buddyList) { if ([buddy.username isEqualToString:buddyName] && buddy.followState == eEMBuddyFollowState_NotFollowed && buddy.isPendingApproval) { return YES; } } return NO;}该方法应该就生效返回YES了,为什么这个方法就不起作用?
解决方案三:
我们demo的处理方式就是不能向已经是好友的在发送好友请求了
解决方案四:
好友申请发送加好友申请环信iOS SDK提供了添加好友的方法如果您已经发过,并且对方没有处理,您将不能再次发送BOOL isSuccess = [[EaseMob sharedInstance].chatManager addBuddy:@"6001" message:@"我想加您为好友" error:&error]; if (isSuccess && !error) { NSLog(@"添加成功"); }