功能描述
您可以调用
findMessages
接口,根据 messageID
查询本地消息详情,包括状态 status 为 V2TIM_MSG_STATUS_LOCAL_REVOKED(已撤回)和 V2TIM_MSG_STATUS_HAS_DELETED(已删除)的消息。通常情况下,如果您想展示消息列表,可以只在内存中存储 messageID。当您需要展示消息内容,或者实现长按/右键点击消息展示更多信息时,可以再调用
findMessages
获取指定消息的详情,而不是一开始就把消息对象加载到内存中,这样会更节省内存。注意:
1. 只支持查询本地消息,例如接收到的消息或者调用拉取历史消息接口获取到的消息。
2. 不支持查询直播群(AVChatRoom)的消息,因为直播群的消息不会保存在本地。
3. 通过 V2TIMMessage 的 status 来区分消息的状态。
接口说明
查询本地消息
示例代码如下:
V2TIMManager.getMessageManager().findMessages(messageIDList, new V2TIMValueCallback<List<V2TIMMessage>>() {@Overridepublic void onSuccess(List<V2TIMMessage> v2TIMMessages) {}@Overridepublic void onError(int code, String desc) {}});
[V2TIMManager.sharedInstance findMessages:messageIDListsucc:^(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);