阿里百川IIMSDK-- 加好友,获取好友

Posted ⬆️小马哥⬆️

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了阿里百川IIMSDK-- 加好友,获取好友相关的知识,希望对你有一定的参考价值。

加好友, 其实就是跟发消息一样

获取好友列表

同步好友列表

SDK内部默认会在每次登陆成功后与服务端同步好友列表,开发者可以通过设置disableAutoRequestAllContacts来禁用这个特性,也可以通过

1
- (void)requestAllContactsFromServerWithResultBlock:(YWContactsOperationResultBlock)resultBlock;

来主动发起同步请求。

怎么调用呢?

 

获取本地好友

开发者可以通过

1
2
3
4
5
6
/// 获取不同排序和分组模式的FRC对象
- (YWFetchedResultsController *)fetchedResultsControllerWithListMode:(YWContactListMode)aMode imCore:(YWIMCore *)imCore;
 
/// 使用关键字搜索用户,使用用户名
// 如果希望搜索好友,needIsFriend置为YES,否则可以置为NO
- (YWFetchedResultsController *)fetchedResultsControllerWithSearchKeyword:(NSString *)aKeyword needIsFriend:(BOOL)needIsFriend imCore:(YWIMCore *)imCore;

来获取本地好友。

for example:

YWIMCore *imcore = [SPKitExample sharedInstance].ywIMKit.IMCore;
        _fetchedResultsController = [[imcore getContactService] fetchedResultsControllerWithListMode:YWContactListModeAlphabetic imCore:imcore];

 

好友操作

好友添加

可以通过以下方式来发起添加好友请求:

1
2
3
4
5
6
7
8
9
10
11
[[self.imkit.IMCore getContactService] addContact:person withIntroduction:@"" withResultBlock:^(NSError *error, YWAddContactRequestResult result) {
        NSString *title = nil;
        if(result == YWAddContactRequestResultError) {
            title = @"请求发送失败";
        } else if (result == YWAddContactRequestResultSuccess) {
            title = @"好友添加成功";
        } else {
            title = @"请求发送成功,等待对方验证";
        }
        [YWIndicator showTopToastTitle:title content:[NSString stringWithFormat:@"添加%@", person.personId] userInfo:nil withTimeToDisplay:1.5 andClickBlock:nil];
    }];

被添加方可以使用:

1
2
- (void)addAddContactRequestBlockV2:(void (^)(YWPerson *person, YWContactAddRequestType type, BOOL isOffline, NSString *message))block
                             forKey:(NSString *)key ofPriority:(YWBlockPriority)priority;

来监听被添加的请求,也可以通过

1
- (YWConversation *)fetchContactSystemConversation;

来获取好友请求列表。

对于被添加的请求,可以使用:

1
2
3
- (void)responseToAddContact:(BOOL)accept fromPerson:(YWPerson *)person
                 withMessage:(NSString*)message
              andResultBlock:(YWAddContactResultBlock)resultBlock;

这个接口接受或者拒绝。
当被添加方处理后,添加发起方可以通过:

1
2
- (void)addAddContactResponseBlockV2:(void (^)(YWPerson *person, YWContactAddResponseType type, BOOL isOffline, NSString *message))block
                              forKey:(NSString *)key ofPriority:(YWBlockPriority)priority;

来获得对方处理的结果。

注:以上add开头添加的block均需要在不使用的时候调用对应的remove方法。

删除好友

开发者可以通过

1
- (void)removeContact:(YWPerson *)persons withResultBlock:(YWRemoveContactResultBlock)resultBlock;

来删除好友,通过

1
2
- (void)addFriendBeRemovedBlock:(void (^)(YWPerson *person, BOOL isOffline))block
                         forKey:(NSString *)key ofPriority:(YWBlockPriority)priority;

来接收被删除的回调。

修改好友的备注名

开发者可以通过

1
- (void)modifyContact:(YWPerson *)person WithNewNick:(NSString *)nickName andResultBlock:(YWContactOperationResultBlock)resultBlock;

来修改好友的备注名,通过

1
- (NSString *)contactNickOfPerson:(YWPerson *)aPerson;

来获取好友的备注名。

查询person是否为好友

1
- (BOOL)ifPersonIsFriend:(YWPerson *)person;
红色的是IMcore对象提供的服务, 除了

getContactService

还有
/**
 *  获取长连接服务
 */
- (id<IYWLoginService>)getLoginService;

/**
 *  获取会话相关服务
 */
- (id<IYWConversationService>)getConversationService;

/**
 *  获取扩展服务
 */
- (id<IYWExtensionService>)getExtensionService;


/**
 *  群相关服务
 */
- (id<IYWTribeService>)getTribeService;

/**
 *  漫游相关服务
 */
- (id<IYWRoamingService>)getRoamingService;

/**
 *  联系人相关服务(建立好友关系的人,称为联系人)
 */
- (id<IYWContactService>)getContactService;

/**
 *  缓存相关服务,在imcore登陆前返回nil。
 *  这里的缓存与imcore相关,跟[YWAPI getGlobalUtilService4Cache]全局缓存的数据不能相互访问
 */
- (id<IYWUtilService4Cache>)getCacheService;

/**
 *  各种设置项
 */
- (id<IYWSettingService>)getSettingService;

/**
 *  获取action相关服务
 */
- (id<IYWActionService>)getActionService;

/**
 *  获取EHelper服务
 */
- (id<IYWEHelperService>)getEHelperService;

 

 
 

以上是关于阿里百川IIMSDK-- 加好友,获取好友的主要内容,如果未能解决你的问题,请参考以下文章

如何获取他人QQ好友名单,有这样的软件吗

如何获取对方qq好友列表 用啥软件

微信点击聊天消息弹加好友XSS

怎么获取对方QQ好友

qq上怎样加好友

如何将一个设置了密码的QQ加为好友