New add fuc
This commit is contained in:
parent
40b65f52a5
commit
8ea08f9ce6
@ -41,5 +41,5 @@ android {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation 'io.openim:client-sdk:2.0.9@aar'
|
implementation 'io.openim:client-sdk:2.0.13@aar'
|
||||||
}
|
}
|
@ -17,10 +17,18 @@ public class OnAdvancedMsgListener implements open_im_sdk_callback.OnAdvancedMsg
|
|||||||
public void onRecvC2CReadReceipt(String s) {
|
public void onRecvC2CReadReceipt(String s) {
|
||||||
final Map<String, String> values = new ArrayMap<>();
|
final Map<String, String> values = new ArrayMap<>();
|
||||||
values.put("id", id);
|
values.put("id", id);
|
||||||
values.put("haveReadMessage", s);
|
values.put("c2cMessageReadReceipt", s);
|
||||||
CommonUtil.emitEvent("advancedMsgListener", "onRecvC2CReadReceipt", values);
|
CommonUtil.emitEvent("advancedMsgListener", "onRecvC2CReadReceipt", values);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onRecvGroupReadReceipt(String s) {
|
||||||
|
final Map<String, String> values = new ArrayMap<>();
|
||||||
|
values.put("id", id);
|
||||||
|
values.put("groupMessageReadReceipt", s);
|
||||||
|
CommonUtil.emitEvent("advancedMsgListener", "onRecvGroupReadReceipt", values);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onRecvMessageRevoked(String s) {
|
public void onRecvMessageRevoked(String s) {
|
||||||
final Map<String, String> values = new ArrayMap<>();
|
final Map<String, String> values = new ArrayMap<>();
|
||||||
|
@ -18,11 +18,21 @@ public class OnSignalingListener implements open_im_sdk_callback.OnSignalingList
|
|||||||
CommonUtil.emitEvent("signalingListener", "onInviteeAccepted", s);
|
CommonUtil.emitEvent("signalingListener", "onInviteeAccepted", s);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onInviteeAcceptedByOtherDevice(String s) {
|
||||||
|
CommonUtil.emitEvent("signalingListener", "onInviteeAcceptedByOtherDevice", s);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onInviteeRejected(String s) {
|
public void onInviteeRejected(String s) {
|
||||||
CommonUtil.emitEvent("signalingListener", "onInviteeRejected", s);
|
CommonUtil.emitEvent("signalingListener", "onInviteeRejected", s);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onInviteeRejectedByOtherDevice(String s) {
|
||||||
|
CommonUtil.emitEvent("signalingListener", "onInviteeRejectedByOtherDevice", s);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onReceiveNewInvitation(String s) {
|
public void onReceiveNewInvitation(String s) {
|
||||||
CommonUtil.emitEvent("signalingListener", "onReceiveNewInvitation", s);
|
CommonUtil.emitEvent("signalingListener", "onReceiveNewInvitation", s);
|
||||||
|
@ -111,11 +111,11 @@ public class ConversationManager extends BaseManager {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// public void getConversationRecvMessageOpt(MethodCall methodCall, MethodChannel.Result result) {
|
public void getConversationRecvMessageOpt(MethodCall methodCall, MethodChannel.Result result) {
|
||||||
// Open_im_sdk.getConversationRecvMessageOpt(
|
Open_im_sdk.getConversationRecvMessageOpt(
|
||||||
// new OnBaseListener(result),
|
new OnBaseListener(result),
|
||||||
// value(methodCall, "operationID"),
|
value(methodCall, "operationID"),
|
||||||
// jsonValue(methodCall, "conversationIDList")
|
jsonValue(methodCall, "conversationIDList")
|
||||||
// );
|
);
|
||||||
// }
|
}
|
||||||
}
|
}
|
||||||
|
@ -133,6 +133,16 @@ public class MessageManager extends BaseManager {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void insertGroupMessageToLocalStorage(MethodCall methodCall, MethodChannel.Result result) {
|
||||||
|
Open_im_sdk.insertGroupMessageToLocalStorage(
|
||||||
|
new OnBaseListener(result),
|
||||||
|
value(methodCall, "operationID"),
|
||||||
|
jsonValue(methodCall, "message"),
|
||||||
|
value(methodCall, "groupID"),
|
||||||
|
value(methodCall, "senderID")
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
// public void findMessages(MethodCall methodCall, MethodChannel.Result result) {
|
// public void findMessages(MethodCall methodCall, MethodChannel.Result result) {
|
||||||
// Open_im_sdk.findMessages(new OnBaseListener(result), jsonValue(methodCall, "messageIDList"));
|
// Open_im_sdk.findMessages(new OnBaseListener(result), jsonValue(methodCall, "messageIDList"));
|
||||||
// }
|
// }
|
||||||
|
@ -83,9 +83,12 @@ class _MyAppState extends State<MyApp> {
|
|||||||
onRecvMessageRevoked: (messageID) {
|
onRecvMessageRevoked: (messageID) {
|
||||||
// 消息成功撤回,从界面移除消息
|
// 消息成功撤回,从界面移除消息
|
||||||
},
|
},
|
||||||
onRecvC2CReadReceipt: (list) {
|
onRecvC2CMessageReadReceipt: (list) {
|
||||||
// 消息被阅读回执,将消息标记为已读
|
// 消息被阅读回执,将消息标记为已读
|
||||||
},
|
},
|
||||||
|
onRecvGroupMessageReadReceipt: (list){
|
||||||
|
// 消息被阅读回执,将消息标记为已读
|
||||||
|
}
|
||||||
))
|
))
|
||||||
..messageManager.setMsgSendProgressListener(OnMsgSendProgressListener(
|
..messageManager.setMsgSendProgressListener(OnMsgSendProgressListener(
|
||||||
onProgress: (messageID, progress) {
|
onProgress: (messageID, progress) {
|
||||||
|
@ -68,7 +68,7 @@ packages:
|
|||||||
path: ".."
|
path: ".."
|
||||||
relative: true
|
relative: true
|
||||||
source: path
|
source: path
|
||||||
version: "1.1.1"
|
version: "2.0.0+2"
|
||||||
flutter_test:
|
flutter_test:
|
||||||
dependency: "direct dev"
|
dependency: "direct dev"
|
||||||
description: flutter
|
description: flutter
|
||||||
|
@ -14,6 +14,7 @@ public class MessageManager: BaseServiceManager {
|
|||||||
self["deleteMessageFromLocalStorage"] = deleteMessageFromLocalStorage
|
self["deleteMessageFromLocalStorage"] = deleteMessageFromLocalStorage
|
||||||
self["deleteMessages"] = deleteMessages
|
self["deleteMessages"] = deleteMessages
|
||||||
self["insertSingleMessageToLocalStorage"] = insertSingleMessageToLocalStorage
|
self["insertSingleMessageToLocalStorage"] = insertSingleMessageToLocalStorage
|
||||||
|
self["insertGroupMessageToLocalStorage"] = insertGroupMessageToLocalStorage
|
||||||
// self["findMessages"] = findMessages
|
// self["findMessages"] = findMessages
|
||||||
self["markC2CMessageAsRead"] = markC2CMessageAsRead
|
self["markC2CMessageAsRead"] = markC2CMessageAsRead
|
||||||
self["typingStatusUpdate"] = typingStatusUpdate
|
self["typingStatusUpdate"] = typingStatusUpdate
|
||||||
@ -73,6 +74,11 @@ public class MessageManager: BaseServiceManager {
|
|||||||
methodCall[string: "receiverID"], methodCall[string: "senderID"])
|
methodCall[string: "receiverID"], methodCall[string: "senderID"])
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func insertGroupMessageToLocalStorage(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
|
||||||
|
Open_im_sdkInsertGroupMessageToLocalStorage(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[jsonString: "message"],
|
||||||
|
methodCall[string: "groupID"], methodCall[string: "senderID"])
|
||||||
|
}
|
||||||
|
|
||||||
// func findMessages(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
|
// func findMessages(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
|
||||||
// Open_im_sdkFindMessages(BaseCallback(result: result), methodCall[jsonString: "messageIDList"])
|
// Open_im_sdkFindMessages(BaseCallback(result: result), methodCall[jsonString: "messageIDList"])
|
||||||
// }
|
// }
|
||||||
@ -217,10 +223,17 @@ public class MessageManager: BaseServiceManager {
|
|||||||
public func onRecvC2CReadReceipt(_ msgReceiptList: String?) {
|
public func onRecvC2CReadReceipt(_ msgReceiptList: String?) {
|
||||||
var values: [String: Any] = [:]
|
var values: [String: Any] = [:]
|
||||||
values["id"] = id
|
values["id"] = id
|
||||||
values["haveReadMessage"] = msgReceiptList
|
values["c2cMessageReadReceipt"] = msgReceiptList
|
||||||
CommonUtil.emitEvent(channel: channel, method: "advancedMsgListener", type: "onRecvC2CReadReceipt", errCode: nil, errMsg: nil, data: values)
|
CommonUtil.emitEvent(channel: channel, method: "advancedMsgListener", type: "onRecvC2CReadReceipt", errCode: nil, errMsg: nil, data: values)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public func onRecvGroupReadReceipt(_ groupMsgReceiptList: String?) {
|
||||||
|
var values: [String: Any] = [:]
|
||||||
|
values["id"] = id
|
||||||
|
values["groupMessageReadReceipt"] = groupMsgReceiptList
|
||||||
|
CommonUtil.emitEvent(channel: channel, method: "advancedMsgListener", type: "onRecvGroupReadReceipt", errCode: nil, errMsg: nil, data: values)
|
||||||
|
}
|
||||||
|
|
||||||
public func onRecvMessageRevoked(_ msgId: String?) {
|
public func onRecvMessageRevoked(_ msgId: String?) {
|
||||||
var values: [String: Any] = [:]
|
var values: [String: Any] = [:]
|
||||||
values["id"] = id
|
values["id"] = id
|
||||||
|
78
ios/Classes/Module/SignalingManager.swift
Normal file
78
ios/Classes/Module/SignalingManager.swift
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
import Foundation
|
||||||
|
import OpenIMCore
|
||||||
|
|
||||||
|
public class SignalingManager: BaseServiceManager {
|
||||||
|
|
||||||
|
public override func registerHandlers() {
|
||||||
|
super.registerHandlers()
|
||||||
|
self["setSignalingListener"] = setSignalingListener
|
||||||
|
self["signalingInvite"] = signalingInvite
|
||||||
|
self["signalingInviteInGroup"] = signalingInviteInGroup
|
||||||
|
self["signalingAccept"] = signalingAccept
|
||||||
|
self["signalingReject"] = signalingReject
|
||||||
|
self["signalingCancel"] = signalingCancel
|
||||||
|
}
|
||||||
|
|
||||||
|
func setSignalingListener(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
|
||||||
|
Open_im_sdkSetSignalingListener(SignalingListener(channel: channel))
|
||||||
|
callBack(result)
|
||||||
|
}
|
||||||
|
|
||||||
|
func signalingInvite(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
|
||||||
|
Open_im_sdkSignalingInvite(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[jsonString: "signalingInfo"])
|
||||||
|
}
|
||||||
|
|
||||||
|
func signalingInviteInGroup(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
|
||||||
|
Open_im_sdkSignalingInviteInGroup(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[jsonString: "signalingInfo"])
|
||||||
|
}
|
||||||
|
|
||||||
|
func signalingAccept(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
|
||||||
|
Open_im_sdkSignalingAccept(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[jsonString: "signalingInfo"])
|
||||||
|
}
|
||||||
|
|
||||||
|
func signalingReject(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
|
||||||
|
Open_im_sdkSignalingReject(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[jsonString: "signalingInfo"])
|
||||||
|
}
|
||||||
|
|
||||||
|
func signalingCancel(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
|
||||||
|
Open_im_sdkSignalingCancel(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[jsonString: "signalingInfo"])
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
public class SignalingListener: NSObject, Open_im_sdk_callbackOnSignalingListenerProtocol {
|
||||||
|
|
||||||
|
private let channel:FlutterMethodChannel
|
||||||
|
|
||||||
|
init(channel:FlutterMethodChannel) {
|
||||||
|
self.channel = channel
|
||||||
|
}
|
||||||
|
|
||||||
|
public func onInvitationCancelled(_ s: String?) {
|
||||||
|
CommonUtil.emitEvent(channel: channel, method: "signalingListener", type: "onInvitationCancelled", errCode: nil, errMsg: nil, data: s)
|
||||||
|
}
|
||||||
|
|
||||||
|
public func onInvitationTimeout(_ s: String?) {
|
||||||
|
CommonUtil.emitEvent(channel: channel, method: "signalingListener", type: "onInvitationTimeout", errCode: nil, errMsg: nil, data: s)
|
||||||
|
}
|
||||||
|
|
||||||
|
public func onInviteeAccepted(_ s: String?) {
|
||||||
|
CommonUtil.emitEvent(channel: channel, method: "signalingListener", type: "onInviteeAccepted", errCode: nil, errMsg: nil, data: s)
|
||||||
|
}
|
||||||
|
|
||||||
|
public func onInviteeAccepted(byOtherDevice s: String?) {
|
||||||
|
CommonUtil.emitEvent(channel: channel, method: "signalingListener", type: "onInviteeAcceptedByOtherDevice", errCode: nil, errMsg: nil, data: s)
|
||||||
|
}
|
||||||
|
|
||||||
|
public func onInviteeRejected(_ s: String?) {
|
||||||
|
CommonUtil.emitEvent(channel: channel, method: "signalingListener", type: "onInviteeRejected", errCode: nil, errMsg: nil, data: s)
|
||||||
|
}
|
||||||
|
|
||||||
|
public func onInviteeRejected(byOtherDevice s: String?) {
|
||||||
|
CommonUtil.emitEvent(channel: channel, method: "signalingListener", type: "onInviteeRejectedByOtherDevice", errCode: nil, errMsg: nil, data: s)
|
||||||
|
}
|
||||||
|
|
||||||
|
public func onReceiveNewInvitation(_ s: String?) {
|
||||||
|
CommonUtil.emitEvent(channel: channel, method: "signalingListener", type: "onReceiveNewInvitation", errCode: nil, errMsg: nil, data: s)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -8,6 +8,7 @@ public class SwiftFlutterOpenimSdkPlugin: NSObject, FlutterPlugin {
|
|||||||
let messageManager: MessageManager
|
let messageManager: MessageManager
|
||||||
let groupManager: GroupManager
|
let groupManager: GroupManager
|
||||||
let userManger: UserManager
|
let userManger: UserManager
|
||||||
|
let signalingManager: SignalingManager
|
||||||
|
|
||||||
init(channel: FlutterMethodChannel) {
|
init(channel: FlutterMethodChannel) {
|
||||||
self.imManager = IMMananger(channel: channel)
|
self.imManager = IMMananger(channel: channel)
|
||||||
@ -16,6 +17,7 @@ public class SwiftFlutterOpenimSdkPlugin: NSObject, FlutterPlugin {
|
|||||||
self.messageManager = MessageManager(channel: channel)
|
self.messageManager = MessageManager(channel: channel)
|
||||||
self.groupManager = GroupManager(channel: channel)
|
self.groupManager = GroupManager(channel: channel)
|
||||||
self.userManger = UserManager(channel: channel)
|
self.userManger = UserManager(channel: channel)
|
||||||
|
self.signalingManager = SignalingManager(channel: channel)
|
||||||
}
|
}
|
||||||
|
|
||||||
public static func register(with registrar: FlutterPluginRegistrar) {
|
public static func register(with registrar: FlutterPluginRegistrar) {
|
||||||
@ -39,6 +41,8 @@ public class SwiftFlutterOpenimSdkPlugin: NSObject, FlutterPlugin {
|
|||||||
groupManager.handleMethod(call: call, result: result)
|
groupManager.handleMethod(call: call, result: result)
|
||||||
case "userManager":
|
case "userManager":
|
||||||
userManger.handleMethod(call: call, result: result)
|
userManger.handleMethod(call: call, result: result)
|
||||||
|
case "signalingManager":
|
||||||
|
signalingManager.handleMethod(call: call, result: result)
|
||||||
default:
|
default:
|
||||||
print("Handle ManagerName Error: \(managerName) not found")
|
print("Handle ManagerName Error: \(managerName) not found")
|
||||||
}
|
}
|
||||||
|
@ -86,6 +86,8 @@ FOUNDATION_EXPORT void Open_im_sdkDeleteConversation(id<Open_im_sdk_callbackBase
|
|||||||
|
|
||||||
FOUNDATION_EXPORT void Open_im_sdkDeleteFriend(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID, NSString* _Nullable friendUserID);
|
FOUNDATION_EXPORT void Open_im_sdkDeleteFriend(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID, NSString* _Nullable friendUserID);
|
||||||
|
|
||||||
|
FOUNDATION_EXPORT void Open_im_sdkDeleteMessage(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID, NSString* _Nullable message);
|
||||||
|
|
||||||
FOUNDATION_EXPORT void Open_im_sdkDeleteMessageFromLocalStorage(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID, NSString* _Nullable message);
|
FOUNDATION_EXPORT void Open_im_sdkDeleteMessageFromLocalStorage(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID, NSString* _Nullable message);
|
||||||
|
|
||||||
FOUNDATION_EXPORT void Open_im_sdkGetAllConversationList(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID);
|
FOUNDATION_EXPORT void Open_im_sdkGetAllConversationList(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID);
|
||||||
@ -161,6 +163,11 @@ FOUNDATION_EXPORT void Open_im_sdkLogout(id<Open_im_sdk_callbackBase> _Nullable
|
|||||||
|
|
||||||
FOUNDATION_EXPORT void Open_im_sdkMarkC2CMessageAsRead(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID, NSString* _Nullable userID, NSString* _Nullable msgIDList);
|
FOUNDATION_EXPORT void Open_im_sdkMarkC2CMessageAsRead(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID, NSString* _Nullable userID, NSString* _Nullable msgIDList);
|
||||||
|
|
||||||
|
FOUNDATION_EXPORT void Open_im_sdkMarkGroupMessageAsRead(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID, NSString* _Nullable groupID, NSString* _Nullable msgIDList);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* deprecated
|
||||||
|
*/
|
||||||
FOUNDATION_EXPORT void Open_im_sdkMarkGroupMessageHasRead(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID, NSString* _Nullable groupID);
|
FOUNDATION_EXPORT void Open_im_sdkMarkGroupMessageHasRead(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID, NSString* _Nullable groupID);
|
||||||
|
|
||||||
FOUNDATION_EXPORT void Open_im_sdkPinConversation(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID, NSString* _Nullable conversationID, BOOL isPinned);
|
FOUNDATION_EXPORT void Open_im_sdkPinConversation(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID, NSString* _Nullable conversationID, BOOL isPinned);
|
||||||
@ -202,10 +209,31 @@ FOUNDATION_EXPORT void Open_im_sdkSetGroupInfo(id<Open_im_sdk_callbackBase> _Nul
|
|||||||
*/
|
*/
|
||||||
FOUNDATION_EXPORT void Open_im_sdkSetGroupListener(id<Open_im_sdk_callbackOnGroupListener> _Nullable callback);
|
FOUNDATION_EXPORT void Open_im_sdkSetGroupListener(id<Open_im_sdk_callbackOnGroupListener> _Nullable callback);
|
||||||
|
|
||||||
|
FOUNDATION_EXPORT void Open_im_sdkSetOneConversationPrivateChat(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID, NSString* _Nullable conversationID, BOOL isPrivate);
|
||||||
|
|
||||||
|
FOUNDATION_EXPORT void Open_im_sdkSetOneConversationRecvMessageOpt(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID, NSString* _Nullable conversationID, long opt);
|
||||||
|
|
||||||
FOUNDATION_EXPORT void Open_im_sdkSetSelfInfo(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID, NSString* _Nullable userInfo);
|
FOUNDATION_EXPORT void Open_im_sdkSetSelfInfo(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID, NSString* _Nullable userInfo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ////////////////////////signaling//////////////////////////////////////////
|
||||||
|
*/
|
||||||
|
FOUNDATION_EXPORT void Open_im_sdkSetSignalingListener(id<Open_im_sdk_callbackOnSignalingListener> _Nullable callback);
|
||||||
|
|
||||||
FOUNDATION_EXPORT void Open_im_sdkSetUserListener(id<Open_im_sdk_callbackOnUserListener> _Nullable listener);
|
FOUNDATION_EXPORT void Open_im_sdkSetUserListener(id<Open_im_sdk_callbackOnUserListener> _Nullable listener);
|
||||||
|
|
||||||
|
FOUNDATION_EXPORT void Open_im_sdkSignalingAccept(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID, NSString* _Nullable signalAcceptReq);
|
||||||
|
|
||||||
|
FOUNDATION_EXPORT void Open_im_sdkSignalingCancel(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID, NSString* _Nullable signalCancelReq);
|
||||||
|
|
||||||
|
FOUNDATION_EXPORT void Open_im_sdkSignalingHungUp(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID, NSString* _Nullable signalHungUpReq);
|
||||||
|
|
||||||
|
FOUNDATION_EXPORT void Open_im_sdkSignalingInvite(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID, NSString* _Nullable signalInviteReq);
|
||||||
|
|
||||||
|
FOUNDATION_EXPORT void Open_im_sdkSignalingInviteInGroup(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID, NSString* _Nullable signalInviteInGroupReq);
|
||||||
|
|
||||||
|
FOUNDATION_EXPORT void Open_im_sdkSignalingReject(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID, NSString* _Nullable signalRejectReq);
|
||||||
|
|
||||||
FOUNDATION_EXPORT void Open_im_sdkTransferGroupOwner(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID, NSString* _Nullable groupID, NSString* _Nullable newOwnerUserID);
|
FOUNDATION_EXPORT void Open_im_sdkTransferGroupOwner(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID, NSString* _Nullable groupID, NSString* _Nullable newOwnerUserID);
|
||||||
|
|
||||||
FOUNDATION_EXPORT void Open_im_sdkTypingStatusUpdate(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID, NSString* _Nullable recvID, NSString* _Nullable msgTip);
|
FOUNDATION_EXPORT void Open_im_sdkTypingStatusUpdate(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID, NSString* _Nullable recvID, NSString* _Nullable msgTip);
|
||||||
|
@ -23,6 +23,8 @@
|
|||||||
@class Open_im_sdk_callbackOnFriendshipListener;
|
@class Open_im_sdk_callbackOnFriendshipListener;
|
||||||
@protocol Open_im_sdk_callbackOnGroupListener;
|
@protocol Open_im_sdk_callbackOnGroupListener;
|
||||||
@class Open_im_sdk_callbackOnGroupListener;
|
@class Open_im_sdk_callbackOnGroupListener;
|
||||||
|
@protocol Open_im_sdk_callbackOnSignalingListener;
|
||||||
|
@class Open_im_sdk_callbackOnSignalingListener;
|
||||||
@protocol Open_im_sdk_callbackOnUserListener;
|
@protocol Open_im_sdk_callbackOnUserListener;
|
||||||
@class Open_im_sdk_callbackOnUserListener;
|
@class Open_im_sdk_callbackOnUserListener;
|
||||||
@protocol Open_im_sdk_callbackSendMsgCallBack;
|
@protocol Open_im_sdk_callbackSendMsgCallBack;
|
||||||
@ -35,6 +37,7 @@
|
|||||||
|
|
||||||
@protocol Open_im_sdk_callbackOnAdvancedMsgListener <NSObject>
|
@protocol Open_im_sdk_callbackOnAdvancedMsgListener <NSObject>
|
||||||
- (void)onRecvC2CReadReceipt:(NSString* _Nullable)msgReceiptList;
|
- (void)onRecvC2CReadReceipt:(NSString* _Nullable)msgReceiptList;
|
||||||
|
- (void)onRecvGroupReadReceipt:(NSString* _Nullable)groupMsgReceiptList;
|
||||||
- (void)onRecvMessageRevoked:(NSString* _Nullable)msgId;
|
- (void)onRecvMessageRevoked:(NSString* _Nullable)msgId;
|
||||||
- (void)onRecvNewMessage:(NSString* _Nullable)message;
|
- (void)onRecvNewMessage:(NSString* _Nullable)message;
|
||||||
@end
|
@end
|
||||||
@ -81,6 +84,16 @@
|
|||||||
- (void)onJoinedGroupDeleted:(NSString* _Nullable)groupInfo;
|
- (void)onJoinedGroupDeleted:(NSString* _Nullable)groupInfo;
|
||||||
@end
|
@end
|
||||||
|
|
||||||
|
@protocol Open_im_sdk_callbackOnSignalingListener <NSObject>
|
||||||
|
- (void)onInvitationCancelled:(NSString* _Nullable)invitationCancelledCallback;
|
||||||
|
- (void)onInvitationTimeout:(NSString* _Nullable)invitationTimeoutCallback;
|
||||||
|
- (void)onInviteeAccepted:(NSString* _Nullable)inviteeAcceptedCallback;
|
||||||
|
- (void)onInviteeAcceptedByOtherDevice:(NSString* _Nullable)inviteeAcceptedCallback;
|
||||||
|
- (void)onInviteeRejected:(NSString* _Nullable)inviteeRejectedCallback;
|
||||||
|
- (void)onInviteeRejectedByOtherDevice:(NSString* _Nullable)inviteeRejectedCallback;
|
||||||
|
- (void)onReceiveNewInvitation:(NSString* _Nullable)receiveNewInvitationCallback;
|
||||||
|
@end
|
||||||
|
|
||||||
@protocol Open_im_sdk_callbackOnUserListener <NSObject>
|
@protocol Open_im_sdk_callbackOnUserListener <NSObject>
|
||||||
- (void)onSelfInfoUpdated:(NSString* _Nullable)userInfo;
|
- (void)onSelfInfoUpdated:(NSString* _Nullable)userInfo;
|
||||||
@end
|
@end
|
||||||
@ -103,6 +116,8 @@
|
|||||||
|
|
||||||
@class Open_im_sdk_callbackOnGroupListener;
|
@class Open_im_sdk_callbackOnGroupListener;
|
||||||
|
|
||||||
|
@class Open_im_sdk_callbackOnSignalingListener;
|
||||||
|
|
||||||
@class Open_im_sdk_callbackOnUserListener;
|
@class Open_im_sdk_callbackOnUserListener;
|
||||||
|
|
||||||
@class Open_im_sdk_callbackSendMsgCallBack;
|
@class Open_im_sdk_callbackSendMsgCallBack;
|
||||||
@ -122,6 +137,7 @@
|
|||||||
|
|
||||||
- (nonnull instancetype)initWithRef:(_Nonnull id)ref;
|
- (nonnull instancetype)initWithRef:(_Nonnull id)ref;
|
||||||
- (void)onRecvC2CReadReceipt:(NSString* _Nullable)msgReceiptList;
|
- (void)onRecvC2CReadReceipt:(NSString* _Nullable)msgReceiptList;
|
||||||
|
- (void)onRecvGroupReadReceipt:(NSString* _Nullable)groupMsgReceiptList;
|
||||||
- (void)onRecvMessageRevoked:(NSString* _Nullable)msgId;
|
- (void)onRecvMessageRevoked:(NSString* _Nullable)msgId;
|
||||||
- (void)onRecvNewMessage:(NSString* _Nullable)message;
|
- (void)onRecvNewMessage:(NSString* _Nullable)message;
|
||||||
@end
|
@end
|
||||||
@ -184,6 +200,20 @@
|
|||||||
- (void)onJoinedGroupDeleted:(NSString* _Nullable)groupInfo;
|
- (void)onJoinedGroupDeleted:(NSString* _Nullable)groupInfo;
|
||||||
@end
|
@end
|
||||||
|
|
||||||
|
@interface Open_im_sdk_callbackOnSignalingListener : NSObject <goSeqRefInterface, Open_im_sdk_callbackOnSignalingListener> {
|
||||||
|
}
|
||||||
|
@property(strong, readonly) _Nonnull id _ref;
|
||||||
|
|
||||||
|
- (nonnull instancetype)initWithRef:(_Nonnull id)ref;
|
||||||
|
- (void)onInvitationCancelled:(NSString* _Nullable)invitationCancelledCallback;
|
||||||
|
- (void)onInvitationTimeout:(NSString* _Nullable)invitationTimeoutCallback;
|
||||||
|
- (void)onInviteeAccepted:(NSString* _Nullable)inviteeAcceptedCallback;
|
||||||
|
- (void)onInviteeAcceptedByOtherDevice:(NSString* _Nullable)inviteeAcceptedCallback;
|
||||||
|
- (void)onInviteeRejected:(NSString* _Nullable)inviteeRejectedCallback;
|
||||||
|
- (void)onInviteeRejectedByOtherDevice:(NSString* _Nullable)inviteeRejectedCallback;
|
||||||
|
- (void)onReceiveNewInvitation:(NSString* _Nullable)receiveNewInvitationCallback;
|
||||||
|
@end
|
||||||
|
|
||||||
@interface Open_im_sdk_callbackOnUserListener : NSObject <goSeqRefInterface, Open_im_sdk_callbackOnUserListener> {
|
@interface Open_im_sdk_callbackOnUserListener : NSObject <goSeqRefInterface, Open_im_sdk_callbackOnUserListener> {
|
||||||
}
|
}
|
||||||
@property(strong, readonly) _Nonnull id _ref;
|
@property(strong, readonly) _Nonnull id _ref;
|
||||||
|
Binary file not shown.
@ -2,7 +2,9 @@ import 'package:flutter_openim_sdk/flutter_openim_sdk.dart';
|
|||||||
|
|
||||||
class OnAdvancedMsgListener {
|
class OnAdvancedMsgListener {
|
||||||
/// Message read receipt
|
/// Message read receipt
|
||||||
Function(List<ReadReceiptInfo> list)? onRecvC2CReadReceipt;
|
Function(List<ReadReceiptInfo> list)? onRecvC2CMessageReadReceipt;
|
||||||
|
|
||||||
|
Function(List<ReadReceiptInfo> list)? onRecvGroupMessageReadReceipt;
|
||||||
|
|
||||||
/// A friend revoked a message
|
/// A friend revoked a message
|
||||||
Function(String msgId)? onRecvMessageRevoked;
|
Function(String msgId)? onRecvMessageRevoked;
|
||||||
@ -14,20 +16,25 @@ class OnAdvancedMsgListener {
|
|||||||
String id;
|
String id;
|
||||||
|
|
||||||
OnAdvancedMsgListener({
|
OnAdvancedMsgListener({
|
||||||
this.onRecvC2CReadReceipt,
|
this.onRecvC2CMessageReadReceipt,
|
||||||
|
this.onRecvGroupMessageReadReceipt,
|
||||||
this.onRecvMessageRevoked,
|
this.onRecvMessageRevoked,
|
||||||
this.onRecvNewMessage,
|
this.onRecvNewMessage,
|
||||||
}) : id = "id_${DateTime.now().microsecondsSinceEpoch}";
|
}) : id = "id_${DateTime.now().microsecondsSinceEpoch}";
|
||||||
|
|
||||||
void recvC2CReadReceipt(List<ReadReceiptInfo> list) {
|
void recvC2CMessageReadReceipt(List<ReadReceiptInfo> list) {
|
||||||
if (null != onRecvC2CReadReceipt) onRecvC2CReadReceipt!(list);
|
onRecvC2CMessageReadReceipt?.call(list);
|
||||||
|
}
|
||||||
|
|
||||||
|
void recvGroupMessageReadReceipt(List<ReadReceiptInfo> list) {
|
||||||
|
onRecvGroupMessageReadReceipt?.call(list);
|
||||||
}
|
}
|
||||||
|
|
||||||
void recvMessageRevoked(String msgId) {
|
void recvMessageRevoked(String msgId) {
|
||||||
if (null != onRecvMessageRevoked) onRecvMessageRevoked!(msgId);
|
onRecvMessageRevoked?.call(msgId);
|
||||||
}
|
}
|
||||||
|
|
||||||
void recvNewMessage(Message msg) {
|
void recvNewMessage(Message msg) {
|
||||||
if (null != onRecvNewMessage) onRecvNewMessage!(msg);
|
onRecvNewMessage?.call(msg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -6,6 +6,8 @@ class OnSignalingListener {
|
|||||||
final Function(SignalingInfo info)? onInviteeAccepted;
|
final Function(SignalingInfo info)? onInviteeAccepted;
|
||||||
final Function(SignalingInfo info)? onInviteeRejected;
|
final Function(SignalingInfo info)? onInviteeRejected;
|
||||||
final Function(SignalingInfo info)? onReceiveNewInvitation;
|
final Function(SignalingInfo info)? onReceiveNewInvitation;
|
||||||
|
final Function(SignalingInfo info)? onInviteeRejectedByOtherDevice;
|
||||||
|
final Function(SignalingInfo info)? onInviteeAcceptedByOtherDevice;
|
||||||
|
|
||||||
OnSignalingListener({
|
OnSignalingListener({
|
||||||
this.onInvitationCancelled,
|
this.onInvitationCancelled,
|
||||||
@ -13,6 +15,8 @@ class OnSignalingListener {
|
|||||||
this.onInviteeAccepted,
|
this.onInviteeAccepted,
|
||||||
this.onInviteeRejected,
|
this.onInviteeRejected,
|
||||||
this.onReceiveNewInvitation,
|
this.onReceiveNewInvitation,
|
||||||
|
this.onInviteeAcceptedByOtherDevice,
|
||||||
|
this.onInviteeRejectedByOtherDevice,
|
||||||
});
|
});
|
||||||
|
|
||||||
/// 被邀请者收到:邀请者取消音视频通话
|
/// 被邀请者收到:邀请者取消音视频通话
|
||||||
@ -39,4 +43,14 @@ class OnSignalingListener {
|
|||||||
void receiveNewInvitation(SignalingInfo info) {
|
void receiveNewInvitation(SignalingInfo info) {
|
||||||
onReceiveNewInvitation?.call(info);
|
onReceiveNewInvitation?.call(info);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// 被邀请者(其他端)收到:比如被邀请者在手机拒接,在pc上会收到此回调
|
||||||
|
void inviteeAcceptedByOtherDevice(SignalingInfo info) {
|
||||||
|
onInviteeAcceptedByOtherDevice?.call(info);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// 被邀请者(其他端)收到:比如被邀请者在手机拒接,在pc上会收到此回调
|
||||||
|
void inviteeRejectedByOtherDevice(SignalingInfo info) {
|
||||||
|
onInviteeRejectedByOtherDevice?.call(info);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -191,18 +191,18 @@ class ConversationManager {
|
|||||||
/// Message Do Not Disturb
|
/// Message Do Not Disturb
|
||||||
/// [{"conversationId":"single_13922222222","result":0}]
|
/// [{"conversationId":"single_13922222222","result":0}]
|
||||||
/// 查询免打扰状态
|
/// 查询免打扰状态
|
||||||
// Future<List<dynamic>> getConversationRecvMessageOpt({
|
Future<List<dynamic>> getConversationRecvMessageOpt({
|
||||||
// required List<String> conversationIDList,
|
required List<String> conversationIDList,
|
||||||
// String? operationID,
|
String? operationID,
|
||||||
// }) =>
|
}) =>
|
||||||
// _channel
|
_channel
|
||||||
// .invokeMethod(
|
.invokeMethod(
|
||||||
// 'getConversationRecvMessageOpt',
|
'getConversationRecvMessageOpt',
|
||||||
// _buildParam({
|
_buildParam({
|
||||||
// "conversationIDList": conversationIDList,
|
"conversationIDList": conversationIDList,
|
||||||
// "operationID": Utils.checkOperationID(operationID),
|
"operationID": Utils.checkOperationID(operationID),
|
||||||
// }))
|
}))
|
||||||
// .then((value) => Utils.toListMap(value));
|
.then((value) => Utils.toListMap(value));
|
||||||
|
|
||||||
/// Custom sort for conversation list
|
/// Custom sort for conversation list
|
||||||
/// 会话列表自定义排序规则。
|
/// 会话列表自定义排序规则。
|
||||||
|
@ -123,17 +123,23 @@ class IMManager {
|
|||||||
case 'onRecvNewMessage':
|
case 'onRecvNewMessage':
|
||||||
var value = call.arguments['data']['newMessage'];
|
var value = call.arguments['data']['newMessage'];
|
||||||
final msg = Utils.toObj(value, (map) => Message.fromJson(map));
|
final msg = Utils.toObj(value, (map) => Message.fromJson(map));
|
||||||
messageManager.advancedMsgListener.recvNewMessage(msg);
|
messageManager.msgListener.recvNewMessage(msg);
|
||||||
break;
|
break;
|
||||||
case 'onRecvMessageRevoked':
|
case 'onRecvMessageRevoked':
|
||||||
var value = call.arguments['data']['revokedMessage'];
|
var msgID = call.arguments['data']['revokedMessage'];
|
||||||
messageManager.advancedMsgListener.recvMessageRevoked(value);
|
messageManager.msgListener.recvMessageRevoked(msgID);
|
||||||
break;
|
break;
|
||||||
case 'onRecvC2CReadReceipt':
|
case 'onRecvC2CReadReceipt':
|
||||||
var value = call.arguments['data']['haveReadMessage'];
|
var value = call.arguments['data']['c2cMessageReadReceipt'];
|
||||||
var list =
|
var list =
|
||||||
Utils.toList(value, (map) => ReadReceiptInfo.fromJson(map));
|
Utils.toList(value, (map) => ReadReceiptInfo.fromJson(map));
|
||||||
messageManager.advancedMsgListener.recvC2CReadReceipt(list);
|
messageManager.msgListener.recvC2CMessageReadReceipt(list);
|
||||||
|
break;
|
||||||
|
case 'onRecvGroupReadReceipt':
|
||||||
|
var value = call.arguments['data']['groupMessageReadReceipt'];
|
||||||
|
var list =
|
||||||
|
Utils.toList(value, (map) => ReadReceiptInfo.fromJson(map));
|
||||||
|
messageManager.msgListener.recvGroupMessageReadReceipt(list);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
} else if (call.method == ListenerType.msgSendProgressListener) {
|
} else if (call.method == ListenerType.msgSendProgressListener) {
|
||||||
@ -244,6 +250,12 @@ class IMManager {
|
|||||||
case 'onReceiveNewInvitation':
|
case 'onReceiveNewInvitation':
|
||||||
signalingManager.listener.receiveNewInvitation(u);
|
signalingManager.listener.receiveNewInvitation(u);
|
||||||
break;
|
break;
|
||||||
|
case 'onInviteeAcceptedByOtherDevice':
|
||||||
|
signalingManager.listener.inviteeAcceptedByOtherDevice(u);
|
||||||
|
break;
|
||||||
|
case 'onInviteeRejectedByOtherDevice':
|
||||||
|
signalingManager.listener.inviteeRejectedByOtherDevice(u);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
|
@ -6,14 +6,14 @@ class MessageManager {
|
|||||||
|
|
||||||
// List<AdvancedMsgListener> advancedMsgListeners = List.empty(growable: true);
|
// List<AdvancedMsgListener> advancedMsgListeners = List.empty(growable: true);
|
||||||
OnMsgSendProgressListener? msgSendProgressListener;
|
OnMsgSendProgressListener? msgSendProgressListener;
|
||||||
late OnAdvancedMsgListener advancedMsgListener;
|
late OnAdvancedMsgListener msgListener;
|
||||||
|
|
||||||
MessageManager(this._channel);
|
MessageManager(this._channel);
|
||||||
|
|
||||||
/// Set a message listener
|
/// Set a message listener
|
||||||
/// 消息监听
|
/// 消息监听
|
||||||
Future setAdvancedMsgListener(OnAdvancedMsgListener listener) {
|
Future setAdvancedMsgListener(OnAdvancedMsgListener listener) {
|
||||||
this.advancedMsgListener = listener;
|
this.msgListener = listener;
|
||||||
// advancedMsgListeners.add(listener);
|
// advancedMsgListeners.add(listener);
|
||||||
return _channel.invokeMethod(
|
return _channel.invokeMethod(
|
||||||
'setAdvancedMsgListener',
|
'setAdvancedMsgListener',
|
||||||
@ -123,6 +123,22 @@ class MessageManager {
|
|||||||
"operationID": Utils.checkOperationID(operationID),
|
"operationID": Utils.checkOperationID(operationID),
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
///
|
||||||
|
Future insertGroupMessageToLocalStorage({
|
||||||
|
String? groupID,
|
||||||
|
String? senderID,
|
||||||
|
Message? message,
|
||||||
|
String? operationID,
|
||||||
|
}) =>
|
||||||
|
_channel.invokeMethod(
|
||||||
|
'insertGroupMessageToLocalStorage',
|
||||||
|
_buildParam({
|
||||||
|
"message": message?.toJson(),
|
||||||
|
"groupID": groupID,
|
||||||
|
"senderID": senderID,
|
||||||
|
"operationID": Utils.checkOperationID(operationID),
|
||||||
|
}));
|
||||||
|
|
||||||
/// Query the message according to the message id
|
/// Query the message according to the message id
|
||||||
// Future findMessages({required List<String> messageIDList}) =>
|
// Future findMessages({required List<String> messageIDList}) =>
|
||||||
// _channel.invokeMethod(
|
// _channel.invokeMethod(
|
||||||
|
@ -573,7 +573,8 @@ class FaceElem {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class ReadReceiptInfo {
|
class ReadReceiptInfo {
|
||||||
String? uid;
|
String? userID;
|
||||||
|
String? groupID;
|
||||||
List<String>? msgIDList;
|
List<String>? msgIDList;
|
||||||
int? readTime;
|
int? readTime;
|
||||||
int? msgFrom;
|
int? msgFrom;
|
||||||
@ -581,7 +582,8 @@ class ReadReceiptInfo {
|
|||||||
int? sessionType;
|
int? sessionType;
|
||||||
|
|
||||||
ReadReceiptInfo(
|
ReadReceiptInfo(
|
||||||
{this.uid,
|
{this.userID,
|
||||||
|
this.groupID,
|
||||||
this.msgIDList,
|
this.msgIDList,
|
||||||
this.readTime,
|
this.readTime,
|
||||||
this.msgFrom,
|
this.msgFrom,
|
||||||
@ -589,7 +591,7 @@ class ReadReceiptInfo {
|
|||||||
this.sessionType});
|
this.sessionType});
|
||||||
|
|
||||||
ReadReceiptInfo.fromJson(Map<String, dynamic> json) {
|
ReadReceiptInfo.fromJson(Map<String, dynamic> json) {
|
||||||
uid = json['uid'];
|
userID = json['uid'] ?? json['userID'];
|
||||||
if (json['msgIDList'] is List) {
|
if (json['msgIDList'] is List) {
|
||||||
msgIDList = (json['msgIDList'] as List).map((e) => '$e').toList();
|
msgIDList = (json['msgIDList'] as List).map((e) => '$e').toList();
|
||||||
}
|
}
|
||||||
@ -601,7 +603,7 @@ class ReadReceiptInfo {
|
|||||||
|
|
||||||
Map<String, dynamic> toJson() {
|
Map<String, dynamic> toJson() {
|
||||||
final data = Map<String, dynamic>();
|
final data = Map<String, dynamic>();
|
||||||
data['uid'] = this.uid;
|
data['userID'] = this.userID;
|
||||||
data['msgIDList'] = this.msgIDList;
|
data['msgIDList'] = this.msgIDList;
|
||||||
data['readTime'] = this.readTime;
|
data['readTime'] = this.readTime;
|
||||||
data['msgFrom'] = this.msgFrom;
|
data['msgFrom'] = this.msgFrom;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user