• UIKit
  • SDK
  • サーバー API
Chat/
SDK/
Android/
メッセージ/
SDK
  • Chat SDK のインストール
  • Chat SDK の初期化
  • ログインとログアウト
  • メッセージ
    • Overview
    • メッセージ送信
    • メッセージの受信
    • メッセージの検索
    • メッセージ転送
    • メッセージの変更
    • メッセージ挿入
    • メッセージ削除
    • 過去のメッセージをクリアします
    • メッセージの取り消し
    • オンラインメッセージの送信
    • メッセージの既読レシート
    • クエリーメッセージ
    • ヒント
    • ターゲットグループメッセージ
    • 通知しません
    • Key-Value の拡張
    • 反応
    • 翻訳
    • メッセージの先頭固定表示
  • セッション
    • Overview
    • セッションリスト
    • セッションの取得
    • 未読数
    • セッションの先頭固定表示
    • セッションの削除
    • 下書き
    • マーク
    • セッショングループ
  • グループ
    • Overview
    • グループ管理
    • プロファイル
    • メンバー管理
    • メンバープロファイル
    • プロパティ
    • カウンター
  • コミュニティとトピック
    • コミュニティ管理
    • 権限グループ
  • ユーザー
    • ユーザープロファイル
    • ユーザー状態
    • 友達の管理
    • 友達グループ
    • ブラックリスト
    • Follow
  • ローカル検索
    • メッセージ検索
    • 友達を検索
    • グループの検索
    • グループメンバーの検索
  • シグナリング
  • インターフェースリファレンスドキュメンテーション
    • Java
  • Guideline for Beginners
  • コンソールガイド
    • アプリケーションの作成とアップグレード
    • 基本設定
    • 機能設定
    • アカウント管理
    • グループ管理
    • コールバック設定
  • 製品紹介
    • メッセージ管理
      • シングルチャットメッセージ
      • メッセージの保存
      • オフラインプッシュ
      • グループメッセージ
      • メッセージフォーマット
    • アカウントシステム
      • ログイン認証
      • オンライン状態管理
    • グループ関連
      • グループシステム
      • グループ管理
    • ユーザープロファイルとリレーションシップチェーン
      • 資料管理
      • リレーションシップチェーン管理
  • 購入ガイド
    • 課金の概要
    • 価格
  • エラーコード
このページは現在英語版のみで提供されており、日本語版も近日中に提供される予定です。ご利用いただきありがとうございます。

メッセージ挿入

Feature Description

When a message is inserted, the message will only be inserted into the local database but not be sent to the server. This API is used to insert tips into a conversation, such as "You have left the group" and "Keep your information secure. Do not send private information such as account, password, and verification code to the group chat". Such messages need to be displayed in the chat area, but do not need to be sent to others.
Caution
Inserted messages will be lost if the account is logged in on another mobile device or the application is uninstalled and reinstalled.

Inserting a local message into one-to-one messages

Call insertC2CMessageToLocalStorage (Android / iOS and macOSWindows) to insert a local message into one-to-one messages.
Sample code:
Android
iOS and macOS
Windows
// Create a message
V2TIMMessage msg = V2TIMManager.getMessageManager().createTextMessage("Insert a local message between one-to-one messages");
// Insert the message into the local database
V2TIMManager.getMessageManager().insertC2CMessageToLocalStorage(msg, "receiver_userID", "sender_userID", new V2TIMValueCallback<V2TIMMessage>() {
@Override
public void onSuccess(V2TIMMessage message) {
// Inserted the message into one-to-one messages successfully
}

@Override
public void onError(int code, String desc) {
// Failed to insert the message into one-to-one messages
}
});
// Create a message
V2TIMMessage *msg = [[V2TIMManager sharedInstance] createTextMessage:@"Insert a local message between C2C messages"];
// Insert the message into the local database
[[V2TIMManager sharedInstance] insertC2CMessageToLocalStorage:msg
to:@"receiver_userID" // `userID` of the receiver
sender:@"sender_userID" // `userID` of the sender
succ:^{
NSLog(@"Message inserted between one-to-one messages successfully");
} fail:^(int code, NSString *msg) {
NSLog(@"Failed to insert the message between one-to-one messages, 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"Insert a local message between one-to-one messages");
V2TIMString userID = "receiver_userID";
V2TIMString sender = "sender_userID";

auto callback = new ValueCallback<V2TIMMessage>{};
callback->SetCallback(
[=](const V2TIMMessage& message) {
// Inserted the message between one-to-one messages successfully
delete callback;
},
[=](int error_code, const V2TIMString& error_message) {
// Failed to insert the message between one-to-one messages
delete callback;
});

V2TIMManager::GetInstance()->GetMessageManager()->InsertGroupMessageToLocalStorage(message, userID, sender,
callback);

Inserting a local message into group messages

Call insertGroupMessageToLocalStorage (Android / iOS and macOSWindows) to insert a local message into group messages.
Sample code:
Android
iOS and macOS
Windows
// Create a message
V2TIMMessage msg = V2TIMManager.getMessageManager().createTextMessage("Insert a local message between group messages");
// Insert the message into the local database
V2TIMManager.getMessageManager().insertGroupMessageToLocalStorage(msg, "groupID", "sender_userID", new V2TIMValueCallback<V2TIMMessage>() {
@Override
public void onSuccess(V2TIMMessage message) {
// Message inserted into group messages successfully
}

@Override
public void onError(int code, String desc) {
// Failed to insert the message into group messages
}
});
// Create a message
V2TIMMessage *msg = [[V2TIMManager sharedInstance] createTextMessage:@"Insert a local message between group messages"];
// Insert the message into the local database
[[V2TIMManager sharedInstance] insertGroupMessageToLocalStorage:msg
to:@"groupID" // `groupID` of the group chat
sender:@"sender_userID" // `userID` of the sender
succ:^{
NSLog(@"Message inserted between group messages successfully");
} fail:^(int code, NSString *msg) {
NSLog(@"Failed to insert the message between group messages, 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"Insert a local message between group messages");
V2TIMString groupID = "groupID";
V2TIMString sender = "sender_userID";

auto callback = new ValueCallback<V2TIMMessage>{};
callback->SetCallback(
[=](const V2TIMMessage& message) {
// Message inserted between group messages successfully
delete callback;
},
[=](int error_code, const V2TIMString& error_message) {
// Failed to insert the message between group messages
delete callback;
});

V2TIMManager::GetInstance()->GetMessageManager()->InsertGroupMessageToLocalStorage(message, groupID, sender,
callback);