tencent cloud

文档反馈

Android & iOS & Mac

最后更新时间:2023-07-17 11:18:54

    功能描述

    插入消息只会将消息插入本地数据库,不会发送到服务端。 该接口主要用于满足向聊天会话中插入一些提示性消息的需求,例如 “您已经退出该群”、“请注意信息安全,不要在群聊中发送任何账号、密码和验证码等私密信息“ 等。这类消息有展示在聊天消息区的需求,但并没有发送给其他人的必要。
    注意
    如果用户切换手机登录,或程序卸载重装,之前插入的消息会丢失。

    向单聊插入本地消息

    您可以调用 insertC2CMessageToLocalStorage (Android / iOS & Mac / Windows) 向单聊插入本地消息。
    示例代码如下:
    Android
    iOS & Mac
    Windows
    // 创建一条消息
    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 消息失败
    }
    });
    // 创建一条消息
    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 (Android / iOS & Mac / Windows) 向群聊插入本地消息。
    示例代码如下:
    Android
    iOS & Mac
    Windows
    // 创建一条消息
    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) {
    // 插入群消息失败
    }
    });
    // 创建一条消息
    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);
    
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持