logo
当前页

设置消息拓展字段


功能简介

ZIM SDK 支持用户在消息中添加拓展字段,作为消息的附加内容发送。根据同步效果,消息拓展字段可分为对端可见类型和仅本端可见类型。消息扩展字段可用于展示消息的翻译状态及翻译内容、展示消息携带业务逻辑等。

实现方法

设置对端可见的拓展字段

  1. 创建 ZIM 实例。
  2. 登录 ZIM SDK。
  3. 构造 ZIMMessage 对象,并在 ZIMMessage 对象里填入 extendedData 字段作为对端可见的消息拓展字段。
  4. 调用 sendMessage 接口,传入 ZIMMessage 对象,发送消息和拓展字段。
示例代码
// 发送单聊 `Text` 信息

var toConversationID = ''; // 对方 userID
var conversationType = 0; // 会话类型,取值为 单聊:0, 房间:1, 群组:2
var config = { 
    priority: 1, // 设置消息优先级,取值为 低:1 默认, 中:2, 高:3
};

var messageTextObj = { type: 1, message: '文本消息内容', extendedData: '消息的扩展信息(可选)' };
var notification = {
    onMessageAttached: function(message) {
        // todo: Loading
    }
}

zim.sendMessage(messageTextObj, toConversationID, conversationType, config, notification)
    .then(function ({ message }) {
        // 发送成功
    })
    .catch(function (err) {
        // 发送失败
    });

1
Copied!

设置仅本端可见的拓展字段

以下为发送消息时的设置流程:

  1. 登录 ZIM SDK 后,构造 ZIMMessage 对象,并在 ZIMMessage 对象里填入 localExtendedData 字段作为仅本端可见的本地拓展字段(下文称为“本地拓展字段”)。
  2. 调用 sendMessage 接口,传入 ZIMMessage 对象,发送消息和拓展字段。
示例代码
// 发送单聊 `Text` 信息

var toConversationID = ''; // 对方 userID
var conversationType = 0; // 会话类型,取值为 单聊:0, 房间:1, 群组:2
var config = { 
    priority: 1, // 设置消息优先级,取值为 低:1 默认, 中:2, 高:3
};

// 1. 设置消息的本地拓展字段
var messageTextObj = { type: 1, message: '文本消息内容', localExtendedData: '消息的本地扩展信息' };
var notification = {
    onMessageAttached: function(message) {
        // todo: Loading
    }
}

// 2. 发送消息
zim.sendMessage(messageTextObj, toConversationID, conversationType, config, notification)
    .then(function ({ message }) {
        // 发送成功
    })
    .catch(function (err) {
        // 发送失败
    });
1
Copied!

更新消息的本地拓展字段

对于已收发消息,您都可调用 updateMessageLocalExtendedData 接口,更新本地拓展字段。

以下示例为更新已接收消息的本地拓展字段:

示例代码
// 收到单聊消息后,更新消息的本地拓展字段
zim.on('receivePeerMessage', function (zim, { messageList, fromConversationID }) {
    console.log(messageList, fromConversationID);
    messageList.forEach((message) => {
        zim.updateMessageLocalExtendedData('本地拓展字段', message)
            .then(function ({ message }) {
                // 操作成功
            })
            .catch(function (err) {
                // 操作失败
            });
    });
});
1
Copied!

Previous

消息回执

Next

消息表态