发送进度
媒体消息发送进度保存在运行时内存中,不会持久化。页面重新进入后,可以先查询当前消息的最新进度,再注册监听器持续接收变化。
接口
ts
querySendProgress(messageId: string): MessageSendProgressSnapshot | undefined
querySendProgresses(messageIds: string[]): MessageSendProgressSnapshot[]
addSendProgressListener(listener: MessageSendProgressListener): void
removeSendProgressListener(listener?: MessageSendProgressListener | string): void1
2
3
4
2
3
4
MessageSendProgressSnapshot
| 字段 | 类型 | 说明 |
|---|---|---|
messageId | string | 消息 ID |
phase | MessageSendProgressPhase | 发送阶段 |
progress | number | 上传进度,范围 0-100 |
updateTime | number | 最近更新时间 |
MessageSendProgressPhase
| 枚举 | 说明 |
|---|---|
QUEUED | 已进入发送队列 |
UPLOADING | 上传中 |
COMPLETED | 发送完成 |
FAILED | 发送失败 |
CANCELLED | 已取消 |
代码示例
ts
import { IMSdk, MessageSendProgressListener, MessageSendProgressSnapshot } from '@beeworks/imsdk'
const snapshot = IMSdk.getInstance()
.getMessageManager()
.querySendProgress(messageId)
console.info('[im][send][progress]', snapshot)
const listener: MessageSendProgressListener = {
key: 'send_progress_listener',
onChanged: (changed: MessageSendProgressSnapshot): void => {
console.info('[im][send][progress][changed]', changed)
}
}
IMSdk.getInstance().getMessageManager().addSendProgressListener(listener)1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
