logo
当前页

设置消息拓展字段


说明

本文档适用于开发以下平台应用:iOS、Android、macOS、Windows。

功能简介

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

实现方法

设置对端可见的拓展字段

  1. 创建 ZIM 实例。
  2. 登录 ZIM SDK。
  3. 构造 ZIMMessage 对象,并在 ZIMMessage 对象里填入 extendedData 字段作为对端可见的消息拓展字段。
  4. 调用 sendMessage 接口,传入 ZIMMessage 对象,发送消息和拓展字段。
示例代码
// 1、创建 ZIM 对象,传入 appID、appSign
ZIMAppConfig appConfig = new ZIMAppConfig();
appConfig.appID = 12345;  // 替换为您在 [ZEGO 控制台](https://console.zego.im/account/login) 申请到的 AppID
appConfig.appSign = "appSign";   // 替换为您在 [ZEGO 控制台](https://console.zego.im/account/login) 申请到的 AppSign
ZIM.Create(appConfig);

// 2、登录
ZIMUserInfo zimUserInfo = new ZIMUserInfo();
zimUserInfo.userID = "xxxx";
zimUserInfo.userName = "xxxx";
ZIM.GetInstance().Login(zimUserInfo, (ZIMError errorInfo) =>
    {
        // 开发者可根据 ZIMError 来判断是否登录成功。          
    }
);

//3.设置消息拓展字段
string toConversationID = "xxxx1";

ZIMTextMessage zimMessage = new ZIMTextMessage();
zimMessage.message = "消息内容";
// 需要发送的拓展字段
zimMessage.extendedData = "消息拓展字段";

ZIMMessageSendConfig config = new ZIMMessageSendConfig();
// 设置消息优先级
config.priority = ZIMMessagePriority.Low;

// 4、设置发送的会话类型
// 发送单聊信息
ZIMConversationType type = ZIMConversationType.Peer;

// 发送群聊信息
ZIMConversationType groupType = ZIMConversationType.Group;

// 发送房间信息
ZIMConversationType roomType = ZIMConversationType.Room;

// 5、发送消息
ZIMMessageSendNotification notification = new ZIMMessageSendNotification();
ZIM.GetInstance().SendMessage(zimMessage, toConversationID, type, config, notification, 
    (ZIMMessage message, ZIMError errorInfo) => 
{
    //消息发送的回调结果
});
1
Copied!

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

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

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

// 设置会话 ID
string toConversationID = "xxxx1";

// 构造 ZIMMessage 对象
ZIMTextMessage zimMessage = new ZIMTextMessage();
zimMessage.message = "消息内容";
// 设置消息的本地拓展字段
zimMessage.localExtendedData = "消息本地拓展字段";

ZIMMessageSendConfig config = new ZIMMessageSendConfig();
// 设置消息优先级
config.priority = ZIMMessagePriority.Low;

// 设置发送的会话类型
// 发送单聊信息
ZIMConversationType peerType = ZIMConversationType.Peer;

// 发送群聊信息
// ZIMConversationType groupType = ZIMConversationType.Group;

// 发送房间信息
// ZIMConversationType roomType = ZIMConversationType.Room;


ZIMMessageSendNotification notification = new ZIMMessageSendNotification();

// 5、发送消息
ZIM.GetInstance().SendMessage(zimMessage, toConversationID, peerType, config, notification, (ZIMMessage message, ZIMError errorInfo) =>
{
    // 开发者可以通过该回调监听消息是否发送成功。
});


1
Copied!

更新消息的本地拓展字段

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

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

示例代码
ZIM.GetInstance().onReceivePeerMessage += (ZIM zim,
                                List<ZIMMessage> messageList,
                                string fromUserID) =>
    {
        foreach (ZIMMessage message in messageList)
        {
            ZIM.GetInstance().UpdateMessageLocalExtendedData("更新本地拓展字段",
                message,
                (ZIMMessage message, ZIMError errorInfo) =>
                {
                    // 开发者可根据该回调监听本地拓展字段是否更新成功   
                });
        };
    };
1
Copied!

Previous

消息回执

Next

搜索本地消息