data
存储投票的标题和选项,然后用消息扩展 key 存储投票用户 ID,用消息扩展 value 存储投票用户选项,有了每个用户的投票选项,我们就可以动态计算出投票选项的用户占比。data
存储接龙的标题,然后用消息扩展 key 存储接龙用户 ID,用消息扩展 value 存储接龙信息。data
存储问卷调查的标题和选项,然后用消息扩展 key 存储问卷调查的用户 ID,用消息扩展 value 存储问卷调查信息。chat.setMessageExtensions(message, extensions);
参数 | 类型 | 描述 |
message | Message | 消息实例,消息需满足三个条件: 消息的 isSupportExtension 属性必须为 true 消息必须是发送成功的状态 消息不能直播群(AVChatRoom)消息 |
extensions | Array | 消息扩展 key-value 列表,如果扩展 key 已经存在,则修改扩展的 value 信息,如果扩展 key 不存在,则新增扩展。 |
Promise
let promise = chat.setMessageExtensions(message, [{ key: 'a', value: '1' }, { key: 'b', value: '2' }]);promise.then(function(imResponse) {// 设置消息扩展成功const { extensions } = imResponse.data;extensions.forEach((item) => {const { code, key, value } = item;if (code === 23001) {// 设置 key 冲突,请根据返回的最新扩展信息,按需进行重试}});}).catch(function(imError) {// 设置消息扩展失败console.warn('setMessageExtensions error:', imError);});
chat.getMessageExtensions(message);
参数 | 类型 | 描述 |
message | Message | 消息实例,消息需满足三个条件: 消息的 isSupportExtension 属性必须为 true 消息必须是发送成功的状态 消息不能是直播群(AVChatRoom)消息 |
Promise
对象。let promise = chat.getMessageExtensions(message);promise.then(function(imResponse) {// 获取消息扩展成功const { extensions } = imResponse.data;extensions.forEach((item) => {const { key, value } = item;// key - 消息扩展 key// value - 消息扩展 key 对应的 value 值});}).catch(function(imError) {// 获取消息扩展失败console.warn('getMessageExtensions error:', imError);});
keyList
字段不传,则会清空所有消息扩展。删除成功后,自己和对端用户(C2C)或群组成员(Group)都会收到 TencentCloudChat.EVENT.MESSAGE_EXTENSIONS_DELETED 事件。chat.deleteMessageExtensions(message, keyList);
参数 | 类型 | 描述 |
message | Message | 消息实例,消息需满足三个条件: 消息的 isSupportExtension 属性必须为 true 消息必须是发送成功的状态 消息不能是直播群(AVChatRoom)消息 |
keyList | Array | undefined | 消息扩展 key 列表。 |
Promise
// 删除消息扩展 keylet promise = chat.deleteMessageExtensions(message, ['a', 'b']);promise.then(function(imResponse) {// 删除消息扩展成功const { extensions } = imResponse.data;extensions.forEach((item) => {const { code, key, value } = item;if (code === 23001) {// 删除 key 冲突,请根据返回的最新扩展信息,按需进行重试}});}).catch(function(imError) {// 删除消息扩展失败console.warn('deleteMessageExtensions error:', imError);});
// 清空所有消息扩展 keylet promise = chat.deleteMessageExtensions(message);promise.then(function(imResponse) {// 清空消息扩展成功console.log('deleteMessageExtensions ok:', imResponse)}).catch(function(imError) {// 清空消息扩展失败console.warn('deleteMessageExtensions error:', imError);});
let onMessageExtensionsUpdated = function(event) {const { messageID, extensions } = event.data;// messageID - 消息 ID// extensions - 消息扩展信息extensions.forEach((item) => {const { key, value } = item;// key - 消息扩展 key// value - 消息扩展 key 对应的 value 值});};chat.on(TencentCloudChat.EVENT.MESSAGE_EXTENSIONS_UPDATED, onMessageExtensionsUpdated);
let onMessageExtensionsDeleted = function(event) {const { messageID, keyList } = event.data;// messageID - 消息 ID// keyList - 被删除的消息扩展 key 列表keyList.forEach((key) => {// console.log(key)});};chat.on(TencentCloudChat.EVENT.MESSAGE_EXTENSIONS_DELETED, onMessageExtensionsDeleted);
本页内容是否解决了您的问题?