功能描述
在某些场景下,您可能需要对好友进行分组,例如分为 "大学同学"、"公司同事" 等,您可以调用以下接口实现。
好友分组
新建好友分组
您可以调用 createFriendGroup
(Android / iOS & Mac / Windows) 接口新建好友分组。
示例代码如下:
List<String> userIDList = new ArrayList<>();
userIDList.add("user1");
userIDList.add("user2");
V2TIMManager.getFriendshipManager().createFriendGroup("大学好友", userIDList, new V2TIMValueCallback<List<V2TIMFriendOperationResult>>() {
@Override
public void onSuccess(List<V2TIMFriendOperationResult> v2TIMFriendOperationResults) {
}
@Override
public void onError(int code, String desc) {
}
});
[[V2TIMManager sharedInstance] createFriendGroup:@"大学好友" userIDList:@[@"user1", @"user2"] succ:^(NSArray<V2TIMFriendOperationResult *> *resultList) {
} fail:^(int code, NSString *desc) {
}];
template <class T>
class ValueCallback final : public V2TIMValueCallback<T> {
public:
using SuccessCallback = std::function<void(const T&)>;
using ErrorCallback = std::function<void(int, const V2TIMString&)>;
ValueCallback() = default;
~ValueCallback() override = default;
void SetCallback(SuccessCallback success_callback, ErrorCallback error_callback) {
success_callback_ = std::move(success_callback);
error_callback_ = std::move(error_callback);
}
void OnSuccess(const T& value) override {
if (success_callback_) {
success_callback_(value);
}
}
void OnError(int error_code, const V2TIMString& error_message) override {
if (error_callback_) {
error_callback_(error_code, error_message);
}
}
private:
SuccessCallback success_callback_;
ErrorCallback error_callback_;
};
V2TIMString groupName = u8"大学好友";
V2TIMStringVector userIDList;
userIDList.PushBack(u8"user1");
userIDList.PushBack(u8"user2");
auto callback = new ValueCallback<V2TIMFriendOperationResultVector>{};
callback->SetCallback(
[=](const V2TIMFriendOperationResultVector& friendOperationResultList) {
delete callback;
},
[=](int error_code, const V2TIMString& error_message) {
delete callback;
});
V2TIMManager::GetInstance()->GetFriendshipManager()->CreateFriendGroup(groupName, userIDList, callback);
删除好友分组
您可以调用 deleteFriendGroup
(Android / iOS & Mac / Windows) 接口删除好友分组。删除好友分组不会删除好友关系。
示例代码如下:
List<String> friendGroupList = new ArrayList<>();
friendGroupList.add("大学好友");
V2TIMManager.getFriendshipManager().deleteFriendGroup(friendGroupList, new V2TIMCallback() {
@Override
public void onSuccess() {
}
@Override
public void onError(int code, String desc) {
}
});
[[V2TIMManager sharedInstance] deleteFriendGroup:@[@"大学好友"] succ:^{
} fail:^(int code, NSString *desc) {
}];
class Callback final : public V2TIMCallback {
public:
using SuccessCallback = std::function<void()>;
using ErrorCallback = std::function<void(int, const V2TIMString&)>;
Callback() = default;
~Callback() override = default;
void SetCallback(SuccessCallback success_callback, ErrorCallback error_callback) {
success_callback_ = std::move(success_callback);
error_callback_ = std::move(error_callback);
}
void OnSuccess() override {
if (success_callback_) {
success_callback_();
}
}
void OnError(int error_code, const V2TIMString& error_message) override {
if (error_callback_) {
error_callback_(error_code, error_message);
}
}
private:
SuccessCallback success_callback_;
ErrorCallback error_callback_;
};
V2TIMStringVector groupNameList;
groupNameList.PushBack(u8"大学好友");
auto callback = new Callback{};
callback->SetCallback(
[=]() {
delete callback;
},
[=](int error_code, const V2TIMString& error_message) {
delete callback;
});
V2TIMManager::GetInstance()->GetFriendshipManager()->DeleteFriendGroup(groupNameList, callback);
重命名好友分组
您可以调用 renameFriendGroup
(Android / iOS & Mac / Windows) 接口重命名好友分组。
示例代码如下:
V2TIMManager.getFriendshipManager().renameFriendGroup("大学好友", "中学好友", new V2TIMCallback() {
@Override
public void onSuccess() {
}
@Override
public void onError(int code, String desc) {
}
});
[[V2TIMManager sharedInstance] renameFriendGroup:@"大学好友" newName:@"中学好友" succ:^{
} fail:^(int code, NSString *desc) {
}];
class Callback final : public V2TIMCallback {
public:
using SuccessCallback = std::function<void()>;
using ErrorCallback = std::function<void(int, const V2TIMString&)>;
Callback() = default;
~Callback() override = default;
void SetCallback(SuccessCallback success_callback, ErrorCallback error_callback) {
success_callback_ = std::move(success_callback);
error_callback_ = std::move(error_callback);
}
void OnSuccess() override {
if (success_callback_) {
success_callback_();
}
}
void OnError(int error_code, const V2TIMString& error_message) override {
if (error_callback_) {
error_callback_(error_code, error_message);
}
}
private:
SuccessCallback success_callback_;
ErrorCallback error_callback_;
};
V2TIMString oldName = u8"大学好友";
V2TIMString newName = u8"中学好友";
auto callback = new Callback{};
callback->SetCallback(
[=]() {
delete callback;
},
[=](int error_code, const V2TIMString& error_message) {
delete callback;
});
V2TIMManager::GetInstance()->GetFriendshipManager()->RenameFriendGroup(oldName, newName, callback);
获取好友分组
您可以调用 getFriendGroupList
(Android / iOS & Mac / Windows) 接口获取好友分组列表。
示例代码如下:
List<String> friendGroups = new ArrayList<>();
friendGroups.add("大学好友");
V2TIMManager.getFriendshipManager().getFriendGroups(friendGroups, new V2TIMValueCallback<List<V2TIMFriendGroup>>() {
@Override
public void onSuccess(List<V2TIMFriendGroup> v2TIMFriendGroups) {
}
@Override
public void onError(int code, String desc) {
}
});
[[V2TIMManager sharedInstance] getFriendGroupList:@[@"大学好友"] succ:^(NSArray<V2TIMFriendGroup *> *groups) {
} fail:^(int code, NSString *desc) {
}];
template <class T>
class ValueCallback final : public V2TIMValueCallback<T> {
public:
using SuccessCallback = std::function<void(const T&)>;
using ErrorCallback = std::function<void(int, const V2TIMString&)>;
ValueCallback() = default;
~ValueCallback() override = default;
void SetCallback(SuccessCallback success_callback, ErrorCallback error_callback) {
success_callback_ = std::move(success_callback);
error_callback_ = std::move(error_callback);
}
void OnSuccess(const T& value) override {
if (success_callback_) {
success_callback_(value);
}
}
void OnError(int error_code, const V2TIMString& error_message) override {
if (error_callback_) {
error_callback_(error_code, error_message);
}
}
private:
SuccessCallback success_callback_;
ErrorCallback error_callback_;
};
V2TIMStringVector groupNameList;
groupNameList.PushBack(u8"大学好友");
auto callback = new ValueCallback<V2TIMFriendGroupVector>{};
callback->SetCallback(
[=](const V2TIMFriendGroupVector& friendGroupList) {
delete callback;
},
[=](int error_code, const V2TIMString& error_message) {
delete callback;
});
V2TIMManager::GetInstance()->GetFriendshipManager()->GetFriendGroups(groupNameList, callback);
添加好友到一个分组
您可以调用 addFriendsToFriendGroup
(Android / iOS & Mac / Windows) 接口添加好友到一个分组。
示例代码如下:
List<String> userIDList = new ArrayList<>();
userIDList.add("user1");
userIDList.add("user2");
V2TIMManager.getFriendshipManager().addFriendsToFriendGroup("大学好友", userIDList, new V2TIMValueCallback<List<V2TIMFriendOperationResult>>() {
@Override
public void onSuccess(List<V2TIMFriendOperationResult> v2TIMFriendOperationResults) {
}
@Override
public void onError(int code, String desc) {
}
});
[[V2TIMManager sharedInstance] addFriendsToFriendGroup:@"大学好友" userIDList:@[@"user1", @"user2"] succ:^(NSArray<V2TIMFriendOperationResult *> *resultList) {
} fail:^(int code, NSString *desc) {
}];
template <class T>
class ValueCallback final : public V2TIMValueCallback<T> {
public:
using SuccessCallback = std::function<void(const T&)>;
using ErrorCallback = std::function<void(int, const V2TIMString&)>;
ValueCallback() = default;
~ValueCallback() override = default;
void SetCallback(SuccessCallback success_callback, ErrorCallback error_callback) {
success_callback_ = std::move(success_callback);
error_callback_ = std::move(error_callback);
}
void OnSuccess(const T& value) override {
if (success_callback_) {
success_callback_(value);
}
}
void OnError(int error_code, const V2TIMString& error_message) override {
if (error_callback_) {
error_callback_(error_code, error_message);
}
}
private:
SuccessCallback success_callback_;
ErrorCallback error_callback_;
};
V2TIMString groupName = u8"大学好友";
V2TIMStringVector userIDList;
userIDList.PushBack(u8"user1");
userIDList.PushBack(u8"user2");
auto callback = new ValueCallback<V2TIMFriendOperationResultVector>{};
callback->SetCallback(
[=](const V2TIMFriendOperationResultVector& friendOperationResultList) {
delete callback;
},
[=](int error_code, const V2TIMString& error_message) {
delete callback;
});
V2TIMManager::GetInstance()->GetFriendshipManager()->AddFriendsToFriendGroup(groupName, userIDList, callback);
从分组中删除某好友
您可以调用 deleteFriendsFromFriendGroup
(Android / iOS & Mac / Windows) 从分组中删除某好友。从该分组中删除好友,只会将好友移出分组,不会删除好友关系。
示例代码如下:
List<String> userIDList = new ArrayList<>();
userIDList.add("user1");
userIDList.add("user2");
V2TIMManager.getFriendshipManager().deleteFriendsFromFriendGroup("大学好友", userIDList, new V2TIMValueCallback<List<V2TIMFriendOperationResult>>() {
@Override
public void onSuccess(List<V2TIMFriendOperationResult> v2TIMFriendOperationResults) {
}
@Override
public void onError(int code, String desc) {
}
});
[[V2TIMManager sharedInstance] deleteFriendsFromFriendGroup:@"大学好友" userIDList:@[@"user1", @"user2"] succ:^(NSArray<V2TIMFriendOperationResult *> *resultList) {
} fail:^(int code, NSString *desc) {
}];
template <class T>
class ValueCallback final : public V2TIMValueCallback<T> {
public:
using SuccessCallback = std::function<void(const T&)>;
using ErrorCallback = std::function<void(int, const V2TIMString&)>;
ValueCallback() = default;
~ValueCallback() override = default;
void SetCallback(SuccessCallback success_callback, ErrorCallback error_callback) {
success_callback_ = std::move(success_callback);
error_callback_ = std::move(error_callback);
}
void OnSuccess(const T& value) override {
if (success_callback_) {
success_callback_(value);
}
}
void OnError(int error_code, const V2TIMString& error_message) override {
if (error_callback_) {
error_callback_(error_code, error_message);
}
}
private:
SuccessCallback success_callback_;
ErrorCallback error_callback_;
};
V2TIMString groupName = u8"大学好友";
V2TIMStringVector userIDList;
userIDList.PushBack(u8"user1");
userIDList.PushBack(u8"user2");
auto callback = new ValueCallback<V2TIMFriendOperationResultVector>{};
callback->SetCallback(
[=](const V2TIMFriendOperationResultVector& friendOperationResultList) {
delete callback;
},
[=](int error_code, const V2TIMString& error_message) {
delete callback;
});
V2TIMManager::GetInstance()->GetFriendshipManager()->DeleteFriendsFromFriendGroup(groupName, userIDList,
callback);
本页内容是否解决了您的问题?