一、功能描述
注意:如果用户切换手机登录,或程序卸载重装,之前插入的消息会丢失。
二、向单聊插入本地消息
你可以调用 insertC2CMessageToLocalStorage (Java / Swift / Objective-C / C++) 向单聊插入本地消息。
示例代码如下:
JavaSwiftObjective-CC++// 创建一条消息V2TIMMessage msg = V2TIMManager.getMessageManager().createTextMessage("本地插入一条 C2C 消息");// 插入到本地存储V2TIMManager.getMessageManager().insertC2CMessageToLocalStorage(msg, "receiver_userID", "sender_userID", new V2TIMValueCallback<V2TIMMessage>() { @Override public void onSuccess(V2TIMMessage message) { // 插入 C2C 消息成功 } @Override public void onError(int code, String desc) { // 插入 C2C 消息失败 }});// 创建一条消息if let msg = V2TIMManager.shared.createTextMessage(text: "本地插入一条 C2C 消息") { // 插入到本地存储 V2TIMManager.shared.insertC2CMessageToLocalStorage(msg: msg, to: "receiver_userID", sender: "sender_userID", succ: { print("插入 C2C 消息成功") }, fail: { code, msg in print("插入 C2C 消息失败, code: \\(code), msg: \\(msg)") })}// 创建一条消息V2TIMMessage *msg = [[V2TIMManager sharedInstance] createTextMessage:@"本地插入一条 C2C 消息"];// 插入到本地存储[[V2TIMManager sharedInstance] insertC2CMessageToLocalStorage:msg to:@"receiver_userID" // 接收者的 userID sender:@"sender_userID" // 发送者的 userID succ:^{ NSLog(@"插入 C2C 消息成功");} fail:^(int code, NSString *msg) { NSLog(@"插入 C2C 消息失败, code: %d, msg: %@", code, msg);}];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_;};V2TIMMessage message = V2TIMManager::GetInstance()->GetMessageManager()->CreateTextMessage(u8"本地插入一条 C2C 消息");V2TIMString userID = "receiver_userID";V2TIMString sender = "sender_userID";auto callback = new ValueCallback<V2TIMMessage>{};callback->SetCallback( [=](const V2TIMMessage& message) { // 插入 C2C 消息成功 delete callback; }, [=](int error_code, const V2TIMString& error_message) { // 插入 C2C 消息失败 delete callback; });V2TIMManager::GetInstance()->GetMessageManager()->InsertGroupMessageToLocalStorage(message, userID, sender, callback);
三、向群聊插入本地消息
你可以调用 insertGroupMessageToLocalStorage (Java / Swift / Objective-C / C++) 向群聊插入本地消息。
示例代码如下:
JavaSwiftObjective-CC++// 创建一条消息V2TIMMessage msg = V2TIMManager.getMessageManager().createTextMessage("本地插入一条群消息");// 插入到本地存储V2TIMManager.getMessageManager().insertGroupMessageToLocalStorage(msg, "groupID", "sender_userID", new V2TIMValueCallback<V2TIMMessage>() { @Override public void onSuccess(V2TIMMessage message) { // 插入群消息成功 } @Override public void onError(int code, String desc) { // 插入群消息失败 }});if let msg = V2TIMManager.shared.createTextMessage(text: "this is local message generated by swift api") { V2TIMManager.shared.insertGroupMessageToLocalStorage(msg: msg, to: "receiver_groupID", sender: "sender_userID") { print("insertGroupMessageToLocalStorage succ") } fail: { code, desc in print("insertGroupMessageToLocalStorage fail, \\(code), \\(desc)") }}// 创建一条消息 V2TIMMessage *msg = [[V2TIMManager sharedInstance] createTextMessage:@"本地插入一条群消息"];// 插入到本地存储[[V2TIMManager sharedInstance] insertGroupMessageToLocalStorage:msg to:@"groupID" // 群聊 groupID sender:@"sender_userID" // 发送者的 userID succ:^{ NSLog(@"插入群消息成功");} fail:^(int code, NSString *msg) { NSLog(@"插入群消息失败, code: %d, msg: %@", code, msg);}];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_;};V2TIMMessage message = V2TIMManager::GetInstance()->GetMessageManager()->CreateTextMessage(u8"本地插入一条群消息");V2TIMString groupID = "groupID";V2TIMString sender = "sender_userID";auto callback = new ValueCallback<V2TIMMessage>{};callback->SetCallback( [=](const V2TIMMessage& message) { // 插入群消息成功 delete callback; }, [=](int error_code, const V2TIMString& error_message) { // 插入群消息失败 delete callback; });V2TIMManager::GetInstance()->GetMessageManager()->InsertGroupMessageToLocalStorage(message, groupID, sender, callback);