ZEGO即时通讯SDK发布3.1.0版本,新增会话级消息定时销毁和消息回执新增已送达状态功能

近日,ZEGO 即时通讯SDK(ZIM) 3.1.0 版本发布,新增会话级消息定时销毁和消息回执新增已送达状态。

会话级消息定时销毁功能概述

设置会话消息定时销毁,指设置一个会话的消息定时销毁时长后,该会话内此后发送的消息将在指定时长后自动删除。可用于阅后即焚、保密通信等场景。

ZEGO即时通讯SDK发布3.1.0版本,新增会话级消息定时销毁和消息回执新增已送达状态功能

设置会话消息定时销毁时长

调用 setConversationMessageDestructDuration 接口,可设置指定会话的消息定时销毁时长。

参数说明:

  • duration:定时销毁时长,单位秒。支持设置的范围为 0 或 60 ~ 604800(7 天)。设置为 0 表示取消定时销毁。

调用时机: 用户登录后可调用,网络条件良好时可调用成功。

  • 设置单聊会话消息定时销毁,需要 conversationID 对应的用户为已注册用户。
  • 设置群聊会话消息定时销毁,需要群组已创建、且当前用户已加入群组。
// duration: 单位秒。支持设置的范围 0 或 60-604800(7d),0 = 取消定时销毁
int duration = 300; // 例如设置为 5 分钟后销毁

zim.setConversationMessageDestructDuration(duration, conversationID, ZIMConversationType.PEER,
    new ZIMConversationMessageDestructDurationSetCallback() {
        @Override
        public void onConversationMessageDestructDurationSet(
            String conversationID, ZIMConversationType conversationType, ZIMError errorInfo) {
            if (errorInfo.code == ZIMErrorCode.SUCCESS) {
                // 设置成功
            } else {
                // 设置失败
            }
        }
    });

消息回执新增已送达状态功能概述

发送者发送回执消息后,若接收端设备已收到该消息,那么消息的回执状态将变更为已送达。开发者可通过 onMessageReceiptChanged 回调监听回执状态的变化。

单聊场景:

  • 接收端在线收到消息后,SDK 自动确认已送达。
  • 接收端收到离线推送后调用服务端 API 确认已送达。
  • 无离线推送时,本端上线拉取到消息后 SDK 自动确认已送达。

群聊场景:

  • 当所有群成员都已送达且仍有成员未读时,消息回执状态流转为 “已送达”。

如果您需要在消息接收方收到离线推送后使得消息回执状态在发送端变更为 “已送达”(iOS 可通过开启推送拦截,Android FCM 可通过使用 DataMessage 推送消息类型的方式,国内 Android 厂商暂不支持),可在收到推送后调用 服务端 API – 设置群聊消息已送达回执 进行确认。

调用示例:

// 1. 构造查询配置
const config = new ZIMGroupMessageReceiptMemberListQueryConfig();
config.nextFlag = 0;    // 初始填 0,后续填 result 里返回的 nextFlag
config.filterType = ZIMMessageReceiptFilterType.Read; // 默认值,查已读成员

// 2. 调用接口
zim.queryGroupMessageReceiptMemberList(message, groupID, 10, config)
    .then((result) => {
        // 查询成功
        // result.userList  — List<ZIMGroupMemberInfo>,符合查询条件的群成员列表
        // result.nextFlag  — 下一次查询的起始标记,为 0 时表示查询完毕
        // result.groupID   — 群组 ID
        // result.errorInfo — ZIMError,code 为 0 表示成功
    })
    .catch((error) => {
        // 查询失败
    });

本文为原创稿件,版权归作者所有,如需转载,请注明出处:https://www.nxrte.com/jishu/im/70491.html

(0)

相关推荐