downloadMediaMessage method
Future<void>
downloadMediaMessage(
- RCIMIWMediaMessage message, {
- dynamic downloaded(
- int? code,
- RCIMIWMediaMessage? message
- dynamic downloading(
- RCIMIWMediaMessage? message,
- int? progress
- dynamic downloadCancel(
- RCIMIWMediaMessage? message
Implementation
Future<void> downloadMediaMessage(
RCIMIWMediaMessage message, {
Function(int? code, RCIMIWMediaMessage? message)? downloaded,
Function(RCIMIWMediaMessage? message, int? progress)? downloading,
Function(RCIMIWMediaMessage? message)? downloadCancel,
}) async {
await engineProvider.engine?.downloadMediaMessage(message,
listener: RCIMIWDownloadMediaMessageListener(
onMediaMessageDownloaded: (int? code, RCIMIWMediaMessage? message) {
if (code == 0) {
for (int i = 0; i < _messages.length; i++) {
if (_messages[i].messageId == message?.messageId) {
_messages[i] = message!;
// 如果消息不是gif,则通知消息列表更新,因为gif会跳动
if (message is! RCIMIWGIFMessage) {
notifyListeners();
}
break;
}
}
}
downloaded?.call(code, message);
RCIMWrapperPlatform.instance.writeLog(
'RCKChatProvider downloadMediaMessage',
'',
code ?? 0,
'onMediaMessageDownloaded: ${message?.messageId}');
},
onMediaMessageDownloading: (message, progress) {
downloading?.call(message, progress);
},
onDownloadingMediaMessageCanceled: (message) {
downloadCancel?.call(message);
RCIMWrapperPlatform.instance.writeLog(
'RCKChatProvider downloadMediaMessage',
'',
0,
'onDownloadingMediaMessageCanceled: ${message?.messageId}');
},
));
}