diff --git a/android/src/main/java/io/openim/flutter_openim_sdk/manager/MessageManager.java b/android/src/main/java/io/openim/flutter_openim_sdk/manager/MessageManager.java index abd0943..858c70f 100644 --- a/android/src/main/java/io/openim/flutter_openim_sdk/manager/MessageManager.java +++ b/android/src/main/java/io/openim/flutter_openim_sdk/manager/MessageManager.java @@ -388,6 +388,16 @@ public class MessageManager extends BaseManager { jsonValue(methodCall, "fileElem"))); } + public void FetchSurroundingMessages(MethodCall methodCall, MethodChannel.Result result) { + CommonUtil.runMainThreadReturn(result, + Open_im_sdk.createFileMessageByURL( + value(methodCall, "operationID"), + jsonValue(methodCall, "message"), + int2long(methodCall, "before"), + int2long(methodCall, "after"))); + } + + public void setCustomBusinessListener(MethodCall methodCall, MethodChannel.Result result) { Open_im_sdk.setCustomBusinessListener(new OnCustomBusinessListener()); diff --git a/ios/Classes/Module/MessageManager.swift b/ios/Classes/Module/MessageManager.swift index 980fd6a..78da2e7 100644 --- a/ios/Classes/Module/MessageManager.swift +++ b/ios/Classes/Module/MessageManager.swift @@ -48,6 +48,10 @@ public class MessageManager: BaseServiceManager { self["setMessageLocalEx"] = setMessageLocalEx self["setAppBadge"] = setAppBadge + self["fetchSurroundingMessages"] = fetchSurroundingMessages + + + self["sendMessageNotOss"] = sendMessageNotOss self["createImageMessageByURL"] = createImageMessageByURL self["createSoundMessageByURL"] = createSoundMessageByURL @@ -255,6 +259,13 @@ public class MessageManager: BaseServiceManager { Open_im_sdkSetCustomBusinessListener(CustomBusinessListener(channel: channel)) callBack(result) } + + func fetchSurroundingMessages(methodCall: FlutterMethodCall, result: @escaping FlutterResult){ + callBack(result, Open_im_sdkFetchSurroundingMessages(methodCall[string: "operationID"], methodCall[jsonString: "message"], methodCall[int: "before"], methodCall[int: "after"])) + } + + + } public class SendMsgProgressListener: NSObject, Open_im_sdk_callbackSendMsgCallBackProtocol { diff --git a/ios/flutter_openim_sdk.podspec b/ios/flutter_openim_sdk.podspec index 997f823..cb88a67 100644 --- a/ios/flutter_openim_sdk.podspec +++ b/ios/flutter_openim_sdk.podspec @@ -4,7 +4,7 @@ # Pod::Spec.new do |s| s.name = 'flutter_openim_sdk' - s.version = '0.0.6' + s.version = '0.0.7' s.summary = 'A new Flutter project.' s.description = <<-DESC A new Flutter project. diff --git a/lib/src/manager/im_message_manager.dart b/lib/src/manager/im_message_manager.dart index 87849f1..26ec253 100644 --- a/lib/src/manager/im_message_manager.dart +++ b/lib/src/manager/im_message_manager.dart @@ -816,6 +816,31 @@ class MessageManager { })); } + /// Fetch Surrounding Messages + /// [message] Message content + /// [before] message index - before + /// [after] message index - after + /// [operationID] Operation ID + Future> FetchSurroundingMessages({ + required Message message, + int? before, + int? after, + String? operationID, + }) => + _channel + .invokeMethod( + 'fetchSurroundingMessages', + _buildParam({ + 'message': message.toJson(), + 'before': before ?? 0, + 'after': after ?? 0, + 'operationID': Utils.checkOperationID(operationID), + })) + .then((value) { + final result = Utils.toListMap(value); + return List.from(result); + }); + static Map _buildParam(Map param) { param["ManagerName"] = "messageManager"; param = Utils.cleanMap(param);