This commit is contained in:
hrxiang
2023-02-08 09:45:53 +08:00
parent c6d9815e64
commit fc6fd3dd93
9 changed files with 82 additions and 3 deletions

View File

@@ -9,6 +9,7 @@ class OnAdvancedMsgListener {
Function(RevokedInfo info)? onRecvMessageRevokedV2;
Function(String msgID, List<KeyValue> list)? onRecvMessageExtensionsChanged;
Function(String msgID, List<String> list)? onRecvMessageExtensionsDeleted;
Function(String msgID, List<KeyValue> list)? onRecvMessageExtensionsAdded;
/// Uniquely identifies
String id;
@@ -21,6 +22,7 @@ class OnAdvancedMsgListener {
this.onRecvMessageRevokedV2,
this.onRecvMessageExtensionsChanged,
this.onRecvMessageExtensionsDeleted,
this.onRecvMessageExtensionsAdded,
}) : id = "id_${DateTime.now().microsecondsSinceEpoch}";
/// C2C消息已读回执
@@ -58,4 +60,9 @@ class OnAdvancedMsgListener {
void recvMessageExtensionsDeleted(String msgID, List<String> list) {
onRecvMessageExtensionsDeleted?.call(msgID, list);
}
/// 收到拓展消息kv新增
void recvMessageExtensionsAdded(String msgID, List<KeyValue> list) {
onRecvMessageExtensionsAdded?.call(msgID, list);
}
}

View File

@@ -166,6 +166,13 @@ class IMManager {
messageManager.msgListener
.recvMessageExtensionsDeleted(msgID, list);
break;
case 'onRecvMessageExtensionsAdded':
var msgID = call.arguments['data']['msgID'];
var value = call.arguments['data']['list'];
var list = Utils.toList(value, (map) => KeyValue.fromJson(map));
messageManager.msgListener
.recvMessageExtensionsAdded(msgID, list);
break;
}
} else if (call.method == ListenerType.msgSendProgressListener) {
String type = call.arguments['type'];

View File

@@ -934,6 +934,38 @@ class MessageManager {
.then((value) => Utils.toList(
value, (map) => MessageTypeKeyMapping.fromJson(map)));
Future<List<TypeKeySetResult>> addMessageReactionExtensions({
required Message message,
List<KeyValue> list = const [],
String? operationID,
}) =>
_channel
.invokeMethod(
'addMessageReactionExtensions',
_buildParam({
'message': message.toJson(),
'list': list.map((e) => e.toJson()).toList(),
"operationID": Utils.checkOperationID(operationID),
}))
.then((value) =>
Utils.toList(value, (map) => TypeKeySetResult.fromJson(map)));
Future<List<MessageTypeKeyMapping>> getMessageListSomeReactionExtensions({
List<Message> messageList = const [],
List<KeyValue> kvList = const [],
String? operationID,
}) =>
_channel
.invokeMethod(
'getMessageListSomeReactionExtensions',
_buildParam({
'messageList': messageList.map((e) => e.toJson()).toList(),
'list': kvList.map((e) => e.toJson()).toList(),
"operationID": Utils.checkOperationID(operationID),
}))
.then((value) => Utils.toList(
value, (map) => MessageTypeKeyMapping.fromJson(map)));
static Map _buildParam(Map param) {
param["ManagerName"] = "messageManager";
return param;

View File

@@ -2,7 +2,7 @@ import 'package:flutter/services.dart';
import 'package:flutter_openim_sdk/flutter_openim_sdk.dart';
class OpenIM {
static const version = '2.3.5+1';
static const version = '2.3.5+2';
static const _channel = const MethodChannel('flutter_openim_sdk');