change message notify

main
willem 4 years ago
parent de57d7254f
commit b126387fcf
  1. 18
      ios/Classes/CommonUtil.swift
  2. 64
      ios/Classes/Module/GroupManager.swift
  3. 37
      ios/Classes/Module/MessageManager.swift

@ -5,18 +5,12 @@ import Foundation
public class CommonUtil {
public static func emitEvent(channel: FlutterMethodChannel, method: String, type: String, errCode: Int?, errMsg: String?, data: Any?){
DispatchQueue.main.async {
let res: NSMutableDictionary = NSMutableDictionary(capacity: 0)
res.setValue(type, forKey: "type")
if (data != nil) {
res.setValue(data, forKey: "data");
}
if (nil != errCode) {
res.setValue(errCode, forKey: "errCode");
}
if (nil != errMsg) {
res.setValue(errMsg, forKey: "errMsg");
}
safeMainAsync {
var res: [String: Any] = [:]
res["type"] = type
res["data"] = data
res["errCode"] = errCode
res["errMsg"] = errMsg
print("native call flutter { method: \(method) type: \(type) }")
channel.invokeMethod(method, arguments: res)
}

@ -118,7 +118,7 @@ public class GroupManager: BaseServiceManager {
}
}
public class GroupListener:NSObject,Open_im_sdkOnGroupListenerProtocol {
public class GroupListener: NSObject, Open_im_sdkOnGroupListenerProtocol {
private let channel:FlutterMethodChannel
@ -127,11 +127,11 @@ public class GroupListener:NSObject,Open_im_sdkOnGroupListenerProtocol {
}
public func onApplicationProcessed(_ groupId: String?, opUser: String?, agreeOrReject AgreeOrReject: Int32, opReason: String?) {
let values: NSMutableDictionary = NSMutableDictionary(capacity: 0)
values.setValue(groupId, forKey: "groupId")
values.setValue(opUser, forKey: "opUser")
values.setValue(AgreeOrReject, forKey: "agreeOrReject")
values.setValue(opReason, forKey: "opReason")
var values: [String: Any] = [:]
values["groupId"] = groupId
values["opUser"] = opUser
values["agreeOrReject"] = AgreeOrReject
values["opReason"] = opReason
CommonUtil.emitEvent(channel: channel, method: "groupListener", type: "onApplicationProcessed", errCode: nil, errMsg: nil, data: values)
}
@ -145,53 +145,53 @@ public class GroupListener:NSObject,Open_im_sdkOnGroupListenerProtocol {
// }
public func onGroupCreated(_ s: String?) {
let values: NSMutableDictionary = NSMutableDictionary(capacity: 0)
values.setValue(s, forKey: "groupId")
var values: [String: Any] = [:]
values["groupId"] = s
CommonUtil.emitEvent(channel: channel, method: "groupListener", type: "onGroupCreated", errCode: nil, errMsg: nil, data: values)
}
public func onGroupInfoChanged(_ s: String?,groupInfo s1: String?) {
let values: NSMutableDictionary = NSMutableDictionary(capacity: 0)
values.setValue(s, forKey: "groupId")
values.setValue(s1, forKey: "groupInfo")
public func onGroupInfoChanged(_ s: String?, groupInfo s1: String?) {
var values: [String: Any] = [:]
values["groupId"] = s
values["groupInfo"] = s1
CommonUtil.emitEvent(channel: channel, method: "groupListener", type: "onGroupInfoChanged", errCode: nil, errMsg: nil, data: values)
}
public func onMemberEnter(_ s: String?,memberList s1: String?) {
let values: NSMutableDictionary = NSMutableDictionary(capacity: 0)
values.setValue(s, forKey: "groupId")
values.setValue(s1, forKey: "memberList")
public func onMemberEnter(_ s: String?, memberList s1: String?) {
var values: [String: Any] = [:]
values["groupId"] = s
values["memberList"] = s1
CommonUtil.emitEvent(channel: channel, method: "groupListener", type: "onMemberEnter", errCode: nil, errMsg: nil, data: values)
}
public func onMemberInvited(_ s: String?,opUser s1: String?,memberList s2: String?) {
let values: NSMutableDictionary = NSMutableDictionary(capacity: 0)
values.setValue(s, forKey: "groupId")
values.setValue(s1, forKey: "opUser")
values.setValue(s2, forKey: "memberList")
public func onMemberInvited(_ s: String?,opUser s1: String?, memberList s2: String?) {
var values: [String: Any] = [:]
values["groupId"] = s
values["opUser"] = s1
values["memberList"] = s2
CommonUtil.emitEvent(channel: channel, method: "groupListener", type: "onMemberInvited", errCode: nil, errMsg: nil, data: values)
}
public func onMemberKicked(_ s: String?,opUser s1: String?,memberList s2: String?) {
let values: NSMutableDictionary = NSMutableDictionary(capacity: 0)
values.setValue(s, forKey: "groupId")
values.setValue(s1, forKey: "opUser")
values.setValue(s2, forKey: "memberList")
var values: [String: Any] = [:]
values["groupId"] = s
values["opUser"] = s1
values["memberList"] = s2
CommonUtil.emitEvent(channel: channel, method: "groupListener", type: "onMemberKicked", errCode: nil, errMsg: nil, data: values)
}
public func onMemberLeave(_ s: String?,member s1: String?) {
let values: NSMutableDictionary = NSMutableDictionary(capacity: 0)
values.setValue(s, forKey: "groupId")
values.setValue(s1, forKey: "member")
var values: [String: Any] = [:]
values["groupId"] = s
values["member"] = s1
CommonUtil.emitEvent(channel: channel, method: "groupListener", type: "onMemberLeave", errCode: nil, errMsg: nil, data: values)
}
public func onReceiveJoinApplication(_ s: String?,member s1: String?,opReason s2: String?) {
let values: NSMutableDictionary = NSMutableDictionary(capacity: 0)
values.setValue(s, forKey: "groupId")
values.setValue(s1, forKey: "member")
values.setValue(s2, forKey: "opReason")
var values: [String: Any] = [:]
values["groupId"] = s
values["member"] = s1
values["opReason"] = s2
CommonUtil.emitEvent(channel: channel, method: "groupListener", type: "onReceiveJoinApplication", errCode: nil, errMsg: nil, data: values)
}

@ -10,7 +10,7 @@ import OpenIMCore
public class MessageManager: BaseServiceManager {
private let KEY_ID: String = "id"
private let listeners: NSMutableDictionary = NSMutableDictionary(capacity: 0)
private var listeners: [String: AdvancedMsgListener] = [:]
public override func registerHandlers() {
super.registerHandlers()
@ -45,13 +45,10 @@ public class MessageManager: BaseServiceManager {
}
func addAdvancedMsgListener(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
let d = methodCall.arguments as! NSDictionary
let key = d.value(forKey: KEY_ID) as! String
if !listeners.allKeys.contains(where: {($0 as! String).compare(key) == .orderedSame}) {
let key = methodCall[string: KEY_ID]
if listeners[key] == nil {
let lis = AdvancedMsgListener(channel: channel, id: key)
let k = methodCall.arguments as! NSDictionary
let s = k.value(forKey: KEY_ID) as! String
listeners.setValue(lis, forKey: s)
listeners[key] = lis
Open_im_sdkAddAdvancedMsgListener(lis)
print("=================add msg listener======\n\(lis)");
}
@ -59,11 +56,9 @@ public class MessageManager: BaseServiceManager {
}
func removeAdvancedMsgListener(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
let k = methodCall.arguments as! NSDictionary
let s = k.value(forKey: KEY_ID) as! String
if listeners.allKeys.contains(where: {($0 as! String).compare(s) == .orderedSame}) {
let lis = listeners.value(forKey: s) as! AdvancedMsgListener
listeners.removeObject(forKey: s)
let key = methodCall[string: KEY_ID]
if let lis = listeners[key] {
listeners[key] = nil
Open_im_sdkRemoveAdvancedMsgListener(lis)
}
callBack(result)
@ -188,12 +183,12 @@ public class MessageManager: BaseServiceManager {
callBack(result)
}
public class SendMsgProgressListener:NSObject, Open_im_sdkSendMsgCallBackProtocol {
public class SendMsgProgressListener: NSObject, Open_im_sdkSendMsgCallBackProtocol {
private let channel: FlutterMethodChannel
private var result: FlutterResult?
private var call: FlutterMethodCall?
private let values: NSMutableDictionary = NSMutableDictionary(capacity: 0)
private var values: [String: Any] = [:]
init(channel: FlutterMethodChannel) {
self.channel = channel
@ -217,8 +212,8 @@ public class MessageManager: BaseServiceManager {
return
}
print("=================onProgress============\nprogress:\(progress)");
values.setValue(call[string: "clientMsgID"], forKey: "clientMsgID")
values.setValue(progress, forKey: "progress")
values["clientMsgID"] = call[string: "clientMsgID"]
values["progress"] = progress
CommonUtil.emitEvent(channel: channel, method: "msgSendProgressListener", type: "onProgress", errCode: nil, errMsg: nil, data: values)
}
@ -231,25 +226,25 @@ public class MessageManager: BaseServiceManager {
public class AdvancedMsgListener: NSObject, Open_im_sdkOnAdvancedMsgListenerProtocol {
private let channel: FlutterMethodChannel
private let values: NSMutableDictionary = NSMutableDictionary(capacity: 0)
private var values: [String: Any] = [:]
init(channel: FlutterMethodChannel, id: String) {
self.channel = channel
values.setValue(id, forKey: "id")
values["id"] = id
}
public func onRecvC2CReadReceipt(_ msgReceiptList: String?) {
values.setValue(msgReceiptList, forKey: "message")
values["haveReadMessage"] = msgReceiptList
CommonUtil.emitEvent(channel: channel, method: "advancedMsgListener", type: "onRecvC2CReadReceipt", errCode: nil, errMsg: nil, data: values)
}
public func onRecvMessageRevoked(_ msgId: String?) {
values.setValue(msgId, forKey: "message")
values["revokedMessage"] = msgId
CommonUtil.emitEvent(channel: channel, method: "advancedMsgListener", type: "onRecvMessageRevoked", errCode: nil, errMsg: nil, data: values)
}
public func onRecvNewMessage(_ message: String?) {
values.setValue(message, forKey: "message")
values["newMessage"] = message
CommonUtil.emitEvent(channel: channel, method: "advancedMsgListener", type: "onRecvNewMessage", errCode: nil, errMsg: nil, data: values)
}
}

Loading…
Cancel
Save