main
hrxiang 2 years ago
parent 4c540fbff5
commit 3b5f47c9f0
  1. 7
      CHANGELOG.md
  2. 2
      android/build.gradle
  3. 10
      android/src/main/java/io/openim/flutter_openim_sdk/listener/OnCustomBusinessListener.java
  4. 7
      android/src/main/java/io/openim/flutter_openim_sdk/manager/MessageManager.java
  5. 2
      example/pubspec.lock
  6. 19
      ios/Classes/Module/MessageManager.swift
  7. 2
      ios/flutter_openim_sdk.podspec
  8. 1
      lib/flutter_openim_sdk.dart
  9. 1
      lib/src/enum/listener_type.dart
  10. 9
      lib/src/listener/custom_business_listener.dart
  11. 13
      lib/src/manager/im_manager.dart
  12. 7
      lib/src/manager/im_message_manager.dart
  13. 2
      pubspec.yaml

@ -1,3 +1,10 @@
## 2.3.5
- Add setCustomBusinessListener method for MessageManager
- Add OnCustomBusinessListener listener
- Add message encryption config
- Add message compression config
## 2.3.4+6
- Add setAppBackgroundStatus method for IMManager

@ -34,5 +34,5 @@ android {
}
}
dependencies {
api 'io.openim:core-sdk:2.3.4-rc7@aar'
api 'io.openim:core-sdk:2.3.5@aar'
}

@ -0,0 +1,10 @@
package io.openim.flutter_openim_sdk.listener;
import io.openim.flutter_openim_sdk.util.CommonUtil;
public class OnCustomBusinessListener implements open_im_sdk_callback.OnCustomBusinessListener {
@Override
public void onRecvCustomBusinessMessage(String s) {
CommonUtil.emitEvent("customBusinessListener", "onRecvCustomBusinessMessage", s);
}
}

@ -4,6 +4,7 @@ import io.flutter.plugin.common.MethodCall;
import io.flutter.plugin.common.MethodChannel;
import io.openim.flutter_openim_sdk.listener.OnAdvancedMsgListener;
import io.openim.flutter_openim_sdk.listener.OnBaseListener;
import io.openim.flutter_openim_sdk.listener.OnCustomBusinessListener;
import io.openim.flutter_openim_sdk.listener.OnMsgSendListener;
import io.openim.flutter_openim_sdk.util.CommonUtil;
import open_im_sdk.Open_im_sdk;
@ -477,4 +478,10 @@ public class MessageManager extends BaseManager {
value(methodCall, "operationID"),
jsonValue(methodCall, "fileElem")));
}
public void setCustomBusinessListener(MethodCall methodCall, MethodChannel.Result result) {
Open_im_sdk.setCustomBusinessListener(new OnCustomBusinessListener());
result.success(null);
}
}

@ -61,7 +61,7 @@ packages:
path: ".."
relative: true
source: path
version: "2.3.4+5"
version: "2.3.4+7"
flutter_test:
dependency: "direct dev"
description: flutter

@ -54,6 +54,7 @@ public class MessageManager: BaseServiceManager {
self["createSoundMessageByURL"] = createSoundMessageByURL
self["createVideoMessageByURL"] = createVideoMessageByURL
self["createFileMessageByURL"] = createFileMessageByURL
self["setCustomBusinessListener"] = setCustomBusinessListener
}
func setAdvancedMsgListener(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
@ -267,6 +268,12 @@ public class MessageManager: BaseServiceManager {
func createFileMessageByURL(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
callBack(result, Open_im_sdkCreateFileMessageByURL(methodCall[string: "operationID"], methodCall[jsonString: "fileElem"]))
}
func setCustomBusinessListener(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkSetCustomBusinessListener(CustomBusinessListener(channel: channel))
callBack(result)
}
}
public class SendMsgProgressListener: NSObject, Open_im_sdk_callbackSendMsgCallBackProtocol {
@ -342,3 +349,15 @@ public class AdvancedMsgListener: NSObject, Open_im_sdk_callbackOnAdvancedMsgLis
CommonUtil.emitEvent(channel: channel, method: "advancedMsgListener", type: "onNewRecvMessageRevoked", errCode: nil, errMsg: nil, data: values)
}
}
public class CustomBusinessListener: NSObject, Open_im_sdk_callbackOnCustomBusinessListenerProtocol {
private let channel: FlutterMethodChannel
init(channel: FlutterMethodChannel) {
self.channel = channel
}
public func onRecvCustomBusinessMessage(_ s: String?) {
CommonUtil.emitEvent(channel: channel, method: "customBusinessListener", type: "onRecvCustomBusinessMessage", errCode: nil, errMsg: nil, data: s)
}
}

@ -17,7 +17,7 @@ A new Flutter project.
s.dependency 'Flutter'
s.platform = :ios, '9.0'
s.dependency 'OpenIMSDKCore','2.3.4'
s.dependency 'OpenIMSDKCore','2.3.5'
s.static_framework = true
# s.vendored_frameworks = 'Framework/*.framework'
# Flutter.framework does not contain a i386 slice.

@ -13,6 +13,7 @@ export 'src/enum/sdk_error_code.dart';
export 'src/listener/advanced_msg_listener.dart';
export 'src/listener/connect_listener.dart';
export 'src/listener/conversation_listener.dart';
export 'src/listener/custom_business_listener.dart';
export 'src/listener/friendship_listener.dart';
export 'src/listener/group_listener.dart';
export 'src/listener/msg_send_progress_listener.dart';

@ -11,4 +11,5 @@ class ListenerType {
static final msgSendProgressListener = "msgSendProgressListener";
static final workMomentsListener = "workMomentsListener";
static final organizationListener = "organizationListener";
static final customBusinessListener = "customBusinessListener";
}

@ -0,0 +1,9 @@
class OnCustomBusinessListener {
Function(String s)? onRecvCustomBusinessMessage;
OnCustomBusinessListener({this.onRecvCustomBusinessMessage});
void recvCustomBusinessMessage(String s) {
onRecvCustomBusinessMessage?.call(s);
}
}

@ -313,6 +313,15 @@ class IMManager {
organizationManager.listener.organizationUpdated();
break;
}
} else if (call.method == ListenerType.customBusinessListener) {
String type = call.arguments['type'];
String data = call.arguments['data'];
switch (type) {
case 'onRecvCustomBusinessMessage':
messageManager.customBusinessListener?.onRecvCustomBusinessMessage
?.call(data);
break;
}
}
} catch (err) {
print(
@ -329,6 +338,8 @@ class IMManager {
/// [dataDir] SDK数据库存储目录
/// [objectStorage] cos/minio
/// [logLevel] 1
/// [enabledEncryption] true
/// [enabledCompression] true
Future<dynamic> initSDK({
required int platform,
required String apiAddr,
@ -339,6 +350,7 @@ class IMManager {
String objectStorage = 'cos',
String? encryptionKey,
bool enabledEncryption = false,
bool enabledCompression = false,
String? operationID,
}) {
this._connectListener = listener;
@ -355,6 +367,7 @@ class IMManager {
"object_storage": objectStorage,
"encryption_key": encryptionKey,
"is_need_encryption": enabledEncryption,
"is_compression ": enabledCompression,
"operationID": Utils.checkOperationID(operationID),
},
));

@ -7,6 +7,7 @@ class MessageManager {
// List<AdvancedMsgListener> advancedMsgListeners = List.empty(growable: true);
OnMsgSendProgressListener? msgSendProgressListener;
late OnAdvancedMsgListener msgListener;
OnCustomBusinessListener? customBusinessListener;
MessageManager(this._channel);
@ -874,6 +875,12 @@ class MessageManager {
}))
.then((value) => Utils.toObj(value, (map) => Message.fromJson(map)));
///
Future setCustomBusinessListener(OnCustomBusinessListener listener) {
this.customBusinessListener = listener;
return _channel.invokeMethod('setCustomBusinessListener', _buildParam({}));
}
static Map _buildParam(Map param) {
param["ManagerName"] = "messageManager";
return param;

@ -1,6 +1,6 @@
name: flutter_openim_sdk
description: An instant messaging plug-in that supports Android and IOS. And the server is also all open source.
version: 2.3.4+6
version: 2.3.5
homepage: https://www.rentsoft.cn
repository: https://github.com/OpenIMSDK/Open-IM-SDK-Flutter

Loading…
Cancel
Save