New add fuc

This commit is contained in:
hrxiang
2022-03-18 18:39:34 +08:00
parent 40b65f52a5
commit 8ea08f9ce6
19 changed files with 276 additions and 41 deletions

View File

@@ -14,6 +14,7 @@ public class MessageManager: BaseServiceManager {
self["deleteMessageFromLocalStorage"] = deleteMessageFromLocalStorage
self["deleteMessages"] = deleteMessages
self["insertSingleMessageToLocalStorage"] = insertSingleMessageToLocalStorage
self["insertGroupMessageToLocalStorage"] = insertGroupMessageToLocalStorage
// self["findMessages"] = findMessages
self["markC2CMessageAsRead"] = markC2CMessageAsRead
self["typingStatusUpdate"] = typingStatusUpdate
@@ -73,6 +74,11 @@ public class MessageManager: BaseServiceManager {
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){
// Open_im_sdkFindMessages(BaseCallback(result: result), methodCall[jsonString: "messageIDList"])
// }
@@ -217,10 +223,17 @@ public class MessageManager: BaseServiceManager {
public func onRecvC2CReadReceipt(_ msgReceiptList: String?) {
var values: [String: Any] = [:]
values["id"] = id
values["haveReadMessage"] = msgReceiptList
values["c2cMessageReadReceipt"] = msgReceiptList
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?) {
var values: [String: Any] = [:]
values["id"] = id

View 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)
}
}

View File

@@ -8,6 +8,7 @@ public class SwiftFlutterOpenimSdkPlugin: NSObject, FlutterPlugin {
let messageManager: MessageManager
let groupManager: GroupManager
let userManger: UserManager
let signalingManager: SignalingManager
init(channel: FlutterMethodChannel) {
self.imManager = IMMananger(channel: channel)
@@ -16,6 +17,7 @@ public class SwiftFlutterOpenimSdkPlugin: NSObject, FlutterPlugin {
self.messageManager = MessageManager(channel: channel)
self.groupManager = GroupManager(channel: channel)
self.userManger = UserManager(channel: channel)
self.signalingManager = SignalingManager(channel: channel)
}
public static func register(with registrar: FlutterPluginRegistrar) {
@@ -39,6 +41,8 @@ public class SwiftFlutterOpenimSdkPlugin: NSObject, FlutterPlugin {
groupManager.handleMethod(call: call, result: result)
case "userManager":
userManger.handleMethod(call: call, result: result)
case "signalingManager":
signalingManager.handleMethod(call: call, result: result)
default:
print("Handle ManagerName Error: \(managerName) not found")
}