環(huán)信3.0ios客戶端的集成(六)

版本記錄

版本號 時間
V1.0 2017.06.10

前言

很多app種都集成環(huán)信做第三方信息通訊工具,這里我們就看一下環(huán)信的主要功能和集成方法。先給出環(huán)信3.0的地址。
感興趣的可以參考:
1. 環(huán)信ios客戶端的集成(一)
2. 環(huán)信ios客戶端的集成(二)
3. 環(huán)信ios客戶端的集成(三)
4. 環(huán)信ios客戶端的集成(四)
5. 環(huán)信ios客戶端的集成(五)
這一篇主要說一下環(huán)信的 好友管理

一、獲取好友列表

注:環(huán)信不是好友也可以聊天,不推薦使用環(huán)信的好友機制。如果你有自己的服務(wù)器或好友關(guān)系,請自己維護好友關(guān)系。

獲取好友列表,環(huán)信提供了兩種方法。

1. 從服務(wù)器獲取所有的好友

EMError *error = nil;
NSArray *userlist = [[EMClient sharedClient].contactManager getContactsFromServerWithError:&error];
if (!error) {
    NSLog(@"獲取成功 -- %@",buddyList);
}

2. 從數(shù)據(jù)庫獲取所有的好友

NSArray *userlist = [[EMClient sharedClient].contactManager getContacts];


二、好友申請

1. 發(fā)送加好友申請

環(huán)信 iOS SDK 提供了添加好友的方法。

EMError *error = [[EMClient sharedClient].contactManager addContact:@"6001" message:@"我想加您為好友"];
if (!error) {
    NSLog(@"添加成功");
}

2. 監(jiān)聽加好友請求

當(dāng)您收到好友請求,如果您沒有處理,請自己保存數(shù)據(jù),新協(xié)議下不會每次都發(fā)送。

//注冊好友回調(diào)
[[EMClient sharedClient].contactManager addDelegate:self delegateQueue:nil];
//移除好友回調(diào)
[[EMClient sharedClient].contactManager removeDelegate:self];

監(jiān)聽回調(diào)


/*!
 *  用戶A發(fā)送加用戶B為好友的申請,用戶B會收到這個回調(diào)
 *
 *  @param aUsername   用戶名
 *  @param aMessage    附屬信息
 */
- (void)friendRequestDidReceiveFromUser:(NSString *)aUsername
                                message:(NSString *)aMessage; 

3. 同意加好友申請

EMError *error = [[EMClient sharedClient].contactManager acceptInvitationForUsername:@"8001"];
if (!error) {
    NSLog(@"發(fā)送同意成功");
}

4. 拒絕加好友申請

EMError *error = [[EMClient sharedClient].contactManager declineInvitationForUsername:@"8001"];
if (!error) {
    NSLog(@"發(fā)送拒絕成功");
}

5. 好友申請?zhí)幚斫Y(jié)果回調(diào)

監(jiān)聽回調(diào)


/*!
 @method
 @brief 用戶A發(fā)送加用戶B為好友的申請,用戶B同意后,用戶A會收到這個回調(diào)
 */
- (void)friendRequestDidApproveByUser:(NSString *)aUsername;

/*!
 @method
 @brief 用戶A發(fā)送加用戶B為好友的申請,用戶B拒絕后,用戶A會收到這個回調(diào)
 */
- (void)friendRequestDidDeclineByUser:(NSString *)aUsername;


三、刪除好友

// 刪除好友
EMError *error = [[EMClient sharedClient].contactManager deleteContact:@"6001" isDeleteConversation:YES];
if (!error) {
    NSLog(@"刪除成功");
}

  • deleteContact: 要刪除的用戶
  • isDeleteConversation: 是否刪除對應(yīng)的會話和消息

四、黑名單

1. 獲取好友黑名單

環(huán)信的黑名單體系是獨立的,與好友無任何關(guān)系。也就是說,您可以將任何人加入黑名單,不論他是否與您是好友關(guān)系。同時,如果您將好友加入黑名單,則他仍然是您的好友,只不過同時也在黑名單中。

查詢黑名單列表,環(huán)信提供了兩種方法。

同步方法


EMError *error = nil;
NSArray *blacklist = [[EMClient sharedClient].contactManager getBlackListFromServerWithError:&error];
if (!error) {
    NSLog(@"獲取成功 -- %@",blockedList);
}

從數(shù)據(jù)庫獲取黑名單列表

NSArray *blockList = [[EMClient sharedClient].contactManager getBlackList];

2. 加入黑名單

//將6001加入黑名單
EMError *error = [[EMClient sharedClient].contactManager addUserToBlackList:@"6001" relationshipBoth:YES];
if (!error) {
    NSLog(@"發(fā)送成功");
}

3. 移出黑名單

接口調(diào)用

// 將6001移除黑名單
EMError *error = [[EMClient sharedClient].contactManager removeUserFromBlackList:@"6001"];
if (!error) {
    NSLog(@"發(fā)送成功");
}

后記

未完,待續(xù)~~~

風(fēng)景
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容