有奖捉虫:办公协同&微信生态&物联网文档专题 HOT

功能描述

您可以根据 messageID 调用 findMessages 查询本地消息。请注意:
1. 只支持查询本地消息,例如接收到的消息或者调用拉取历史消息接口获取到的消息。
2. 不支持查询直播群(AVChatRoom)的消息,因为直播群的消息不会保存在本地。

查询本地消息

查询本地消息的接口为 findMessages (Android / iOS & Mac / Windows) 。
示例代码如下:
Android
iOS & Mac
Windows
V2TIMManager.getMessageManager().findMessages(messageIDList, new V2TIMValueCallback<List<V2TIMMessage>>() {
@Override
public void onSuccess(List<V2TIMMessage> v2TIMMessages) {}

@Override
public void onError(int code, String desc) {}
});
[V2TIMManager.sharedInstance findMessages:messageIDList
succ:^(NSArray<V2TIMMessage *> *msgs) {
// 查询消息成功
} 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_;
};

auto callback = new ValueCallback<V2TIMMessageVector>{};
callback->SetCallback(
[=](const V2TIMMessageVector& messageVector) {
// 查询消息成功
delete callback;
},
[=](int error_code, const V2TIMString& error_message) {
// 查询消息失败
delete callback;
});

V2TIMManager::GetInstance()->GetMessageManager()->FindMessages(messageIDList, callback);