一、功能描述
通常情况下,如果你想展示消息列表,可以只在内存中存储 messageID。当你需要展示消息内容,或者实现长按/右键点击消息展示更多信息时,可以再调用 findMessages 获取指定消息的详情,而不是一开始就把消息对象加载到内存中,这样会更节省内存。
二、查询本地消息
查询本地消息的接口为 findMessages (Java / Swift / Objective-C / C++) 。
示例代码如下:
JavaSwiftObjective-CC++V2TIMManager.getMessageManager().findMessages(messageIDList, new V2TIMValueCallback<List<V2TIMMessage>>() { @Override public void onSuccess(List<V2TIMMessage> v2TIMMessages) {} @Override public void onError(int code, String desc) {}});V2TIMManager.shared.findMessages(messageIDList: ["1", "2", "3"]) { msgs in msgs.forEach { item in print("\\(item.description)") }} fail: { code, desc in print("code: \\(code), desc: \\(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);