tencent cloud

文档反馈

Android&iOS&Windows&Mac

最后更新时间:2024-07-05 18:00:23

    功能描述

    在发送消息时,可能会遇到消息尚未编辑完,就要切换至其它聊天窗口的情况。这些未编辑完的消息可通过 setConversationDraft 接口保存,以便于下次回到这个聊天界面时,通过 V2TIMConversation 对象的 draftText 字段,获取到尚未编辑完的内容,继续编辑。
    注意
    1. 会话草稿仅支持文本内容。
    2. 会话草稿仅在本地保存,不会存储到服务器,因此不能多端同步,程序卸载重装会失效。

    效果展示

    您可以使用本功能实现如下图所示的会话草稿效果,单击该会话进入聊天界面,将草稿内容自动填充到输入框:
    

    接口说明

    设置会话草稿

    您可以调用 setConversationDraft(Android / iOS & Mac / Windows) 接口,设置会话草稿。 如果传递的 draftText 参数为空,表示清除草稿。
    示例代码如下:
    Android
    iOS & Mac
    Windows
    String conversationID = "conversationID";
    String draftText = "The draft text";
    V2TIMManager.getConversationManager().setConversationDraft(conversationID, draftText, new V2TIMCallback() {
    @Override
    public void onSuccess() {
    Log.i("imsdk", "success");
    }
    
    @Override
    public void onError(int code, String desc) {
    Log.i("imsdk", "failure, code:" + code + ", desc:" + desc);
    }
    });
    NSString *conversationID = @"conversationID";
    NSString *draftText = "The draft text";
    [[V2TIMManager sharedInstance] setConversationDraft:conversationID draftText:draftText succ:^{
    NSLog(@"success");
    } fail:^(int code, NSString *desc) {
    NSLog(@"failure, code:%d, desc:%@", code, desc);
    }];
    class Callback final : public V2TIMCallback {
    public:
    using SuccessCallback = std::function<void()>;
    using ErrorCallback = std::function<void(int, const V2TIMString&)>;
    
    Callback() = default;
    ~Callback() override = default;
    
    void SetCallback(SuccessCallback success_callback, ErrorCallback error_callback) {
    success_callback_ = std::move(success_callback);
    error_callback_ = std::move(error_callback);
    }
    
    void OnSuccess() override {
    if (success_callback_) {
    success_callback_();
    }
    }
    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_;
    };
    
    V2TIMString conversationID = u8"conversationID";
    V2TIMString draftText = u8"The draft text";
    
    auto callback = new Callback;
    callback->SetCallback(
    [=]() {
    // 设置会话草稿成功
    delete callback;
    },
    [=](int error_code, const V2TIMString& error_message) {
    // 设置会话草稿失败
    delete callback;
    });
    
    V2TIMManager::GetInstance()->GetConversationManager()->SetConversationDraft(conversationID, draftText,
    callback);
    
    联系我们

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

    技术支持

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

    7x24 电话支持