腾讯云即时通信IMAndroid&iOS&Windows&Mac_AI解决方案_同尘科技
功能描述
删除好友或退出群组后,SDK 不会自动删除对应的单聊或群聊会话。客户可以调用下文的接口,主动删除会话。会话删除默认不支持多端同步,您可以在 即时通信 IM 控制台 开启多端同步。配置页面如下图所示:说明 删除会话多端同步功能仅 SDK 5.1.1 及以上版本支持。
删除单个会话
您可以调用 deleteConversation
(Android / iOS & Mac / Windows) 接口,删除指定的会话。注意 删除会话会同时删除终端和服务器的历史消息,且无法恢复。如果您希望保留历史消息,请使用 删除多个会话 接口。示例代码如下:AndroidiOS & MacWindows
String conversationID = "conversationID";V2TIMManager.getConversationManager().deleteConversation(conversationID, new V2TIMCallback() { @Override public void onSuccess() { // 删除会话成功 } @Override public void onError(int code, String desc) { // 删除会话失败 }});
NSString *conversationID = @"conversationID";[[V2TIMManager sharedInstance] deleteConversation:conversationID succ:^{ // 删除会话成功 } fail:^(int code, NSString *desc) { // 删除会话失败 }];
class Callback final : public V2TIMCallback {public: using SuccessCallback = std::function; using ErrorCallback = std::function;
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 groupName = u8"conversationID";auto callback = new Callback;callback->SetCallback( [=]() { // 删除会话成功 delete callback; }, [=](int error_code, const V2TIMString& error_message) { // 删除会话失败 delete callback; });V2TIMManager::GetInstance()->GetConversationManager()->DeleteConversationGroup(groupName, callback);
删除多个会话
您可以调用 deleteConversationList
(Android / iOS & Mac / Windows) 接口,删除指定的会话。clearMessage
设置为 false
时,会保留会话消息;设置为 true
时,本地和服务器的消息会一起删除,并且不可恢复。说明仅 SDK 7.1 及以上版本支持。每次最多支持删除 100 个会话。示例代码如下:AndroidiOS & MacWindows
List conversationIDList = new ArrayList();conversationIDList.add("c2c_userID");conversationIDList.add("group_groupID");V2TIMManager.getConversationManager().deleteConversationList( conversationIDList, true, new V2TIMValueCallback<List>() { @Override public void onSuccess(List results) { // 删除会话成功 for (V2TIMConversationOperationResult result : results) { int code = result.getResultCode(); String info = result.getResultInfo(); String conversationID = result.getConversationID(); } } @Override public void onError(int code, String desc) { // 删除会话失败 } });
NSMutableArray *conversationIDList = [NSMutableArray array];[conversationIDList addObject:@"c2c_userID"];[conversationIDList addObject:@"group_groupID"];[[V2TIMManager sharedInstance] deleteConversationList:conversationIDList clearMessage:true succ:^(NSArray *results) { // 删除会话成功 for (V2TIMConversationOperationResult *result in results) { int code = result.resultCode; NSString *info = result.resultInfo; NSString *conversationID = result.conversationID; } } fail:^(int code, NSString *desc) { // 删除会话失败 }];
template class ValueCallback final : public V2TIMValueCallback {public: using SuccessCallback = std::function; using ErrorCallback = std::function;
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 conversationIDList;conversationIDList.PushBack(u8"c2c_userID");conversationIDList.PushBack(u8"group_groupID");auto callback = new ValueCallback{};callback->SetCallback( [=](const V2TIMConversationOperationResultVector& results) { // 删除会话成功 for (size_t i = 0; i GetConversationManager()->DeleteConversationList(conversationIDList, true, callback);
会话被删除通知
如果您事先调用了 addConversationListener
(Android / iOS & Mac / Windows) 添加会话监听器,就可以在 onConversationDeleted
中获取会话被删除的通知。示例代码如下:Android
@Overridepublic void onConversationDeleted(List conversationIDList) { Log.i("imsdk", "onConversationDeleted");}
对即时通讯IM解决方案有疑惑?想了解解决方案收费? 联系解决方案专家
腾讯云限时活动1折起,即将结束: 马上收藏
同尘科技为腾讯云授权服务中心,购买腾讯云享受折上折,更有现金返利:同意关联,立享优惠
阿里云解决方案也看看?: 点击对比阿里云的解决方案
暂无评论,你要说点什么吗?